Problem E: 統計元音
Description
統計每個元音字母在字符串中出現的次數。
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
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
int main()
{
int a,b,c,d,e,n,m,j,i;
char str[100];
scanf("%d\n",&m);
for(j=1; j<=m; j++)
{
{
gets(str);
a=0;
b=0;
c=0;
d=0;
e=0;
n=strlen(str);
for(i=0;i<=n-1; i++)
{
if(str[i]=='a')
a++;
else if(str[i]=='e')
b++;
elseif(str[i]=='i')
c++;
elseif(str[i]=='o')
d++;
elseif(str[i]=='u')
e++;
}
cout<<"a:"<<a<<'\n'<<"e:"<<b<<'\n'<<"i:"<<c<<'\n'<<"o:"<<d<<'\n'<<"u:"<<e<<endl;
if(j<m) cout<<endl;
}
}
return 0;
}
題目要就統計元音的個數,其實就是查找字符串中幾個特殊字符的個數;
爲了對每個字符進行比較,需要求出字符串的長度,別忘了加所需的頭文件(#include<cstring>),爲了消除空格的影響,用gets輸入字符串,還有引用C語言的頭文件(#include<stdio.h>);
循環輸入固定的n組數據,需要先輸入一個數字(scanf("%d\n",&m);),然後用循環語句控制輸入的次數(for(j=1;j<=m; j++));
定義四個變量,賦初值爲0,且在輸入循環之內,在統計循環之外,否則,每次每次統計的結果不清零會累加或者在統計循環之內只能得到最後一次循環統計的結果;
求出字符串長度(n=strlen(str);),並在長度之內循環進行統計(for(i=0;i<=n-1; i++));注意,字符數組中下標從0開始,if語句中相等時雙等號;
按照要求,除了最後一次輸入的測試以外(if(j<m)),每次結果後面都有一個空行(cout<<endl;); 循環一次,輸出一次結果(cout<<"a:"<<a<<'\n'<<"e:"<<b<<'\n'<<"i:"<<c<<'\n'<<"o:"<<d<<'\n'<<"u:"<<e<<endl;)。