統計每個母音字母在字串中出現的次數。
阿新 • • 發佈:2018-12-14
CLICK HERE TO HAVE A TRY
Time limit1000 ms
Memory limit32768 KB
原題:
統計每個母音字母在字串中出現的次數。
Input
輸入資料首先包括一個整數n,表示測試例項的個數,然後是n行長度不超過100的字串。
Output
對於每個測試例項輸出5行,格式如下:
a:num1
e:num2
i:num3
o:num4
u:num5
多個測試例項之間由一個空行隔開。
請特別注意:最後一塊輸出後面沒有空行:)
Sample Input
2
aeiou
my name is ignatius
Sample Output
a:1
e:1
i:1
o:1
u:1
a:2
e:1
i:3
o:0
u:1
問題分析:
定義一個足夠大的陣列,把輸入的字串放進裡面(包括空格),把一行裡的字元(包括空格)是母音個數分別輸出。
錯誤分析:
本人困在瞭如何讓系統接受一整行作為輸入的問題裡,想了好久,提交錯了好多,快崩潰了,才被同學指點,加了"n- -",加了這個就可以在首先輸入組數的情況下,在程式裡輸入完兩個例子之後就結束程式,這真是最關鍵的點之一了,其次利用**cin.getline(a,1000)來輸入一整行也是關鍵點,還要注意getchar()**的用法!!!!!
不懂的自行百度,不謝…
VS通過的程式碼如下:
#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
int main()
{
char a[1000];
int i, k, n, b[5];
cin >> n;
getchar();
while (cin.getline(a, 1000)&&n--)
{
k = strlen(a);
for (i = 0;i < 5;i++)
b[i] = 0;
for (i = 0;i < k;i++)
{
if (a[i] == 'a')
b[0]++;
else if (a[i] == 'e')
b[1]++;
else if (a[i] == 'i')
b[2]++;
else if (a[i] == 'o')
b[3]++;
else if (a[i] == 'u')
b[4]++;
}
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n", b[0], b[1], b[2], b[3], b[4]);
if (n != 0)
printf("\n");
}
}