题目:
统计每个元音字母在字符串中出现的次数。
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
思路:
这道题不难,关键是我不知道怎么在JAVA中吸收一个回车符,这点难倒我了,我看了看别人的代码。简直不要太简单了,直接把回车符当做一个字符串,不处理就可以了,然后注意一下输出格式就可以了。
代码如下:
JAVA:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n=input.nextInt();
input.nextLine();//吸收一个回车键;
while(n>0) {
n--;
String s=input.nextLine();
int a=0,e=0,i=0,o=0,u=0;
int l=s.length();
for(int j=0;j<l;j++) {
char q=s.charAt(j);
if(q=='a')a++;
else if(q=='e')e++;
else if(q=='i')i++;
else if(q=='o')o++;
else if(q=='u')u++;
}
System.out.println("a:"+a);
System.out.println("e:"+e);
System.out.println("i:"+i);
System.out.println("o:"+o);
System.out.println("u:"+u);
if(n!=0)
System.out.println();
}
}
}
C++:
#include<stdio.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
char s[110];
getchar();
while(n--)
{
int a=0,e=0,i=0,o=0,u=0;
gets(s);
int l=strlen(s);
for(int j=0;j<l;j++)
{
if(s[j]=='a') a++;
if(s[j]=='e') e++;
if(s[j]=='i') i++;
if(s[j]=='o') o++;
if(s[j]=='u') u++;
}
if(n==0)
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n",a,e,i,o,u);
if(n!=0)
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n\n",a,e,i,o,u);
}
return 0;
}