杭电oj编码2027

问题描述:

统计每个元音字母在字符串中出现的次数。


输入:

输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。


输出:

对于每个测试实例输出5行,格式如下:
a:num1
e:num2
i:num3
o:num4
u:num5
多个测试实例之间由一个空行隔开。

请特别注意:最后一块输出后面没有空行:)


样例输入:

2

aeiou

my name is ignatius


样例输出:

a:1

e:1

i:1

o:1

u:1


a:2

e:1

i:3

o:0

u:1


分析:

本题没有什么难度,主要要考虑的是上面画红线的地方。

它的意思是每两次输出字符之间,需要用两个“\n”,在最后一次输出字符之后,只需要用一个“\n”,就好了。

(可惜,我盯了很长时间没有有弄懂。- - !)


代码:

#include
#include
#include
int main()
{
	int n = 0;
	scanf_s("%d",&n);//在hdu中使用时,需要替换成“scanf("%d",&n);”
	getchar();//将输入n时的回车键读掉,否则while循环中的gets_s第一次读取到的会是一个回车换行符
	while (n--)
	{
		char str[100];//长度为100的字符数组,当字符长度超过100时,会自动截取
		gets_s(str, 100);//读取字符数组,在hdu中运行时,需要替换成“gets(str);”
		int num1 = 0, num2 = 0, num3 = 0, num4 = 0, num5 = 0;//a e i o u各个元音字符的计数器
		for (int i = 0; i < int(strlen(str)); ++i)
		{
			if (str[i] == 'a')
				++num1;
			if (str[i] == 'e')
				++num2;
			if (str[i] == 'i')
				++num3;
			if (str[i] == 'o')
				++num4;
			if (str[i] == 'u')
				++num5;
		}
		printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n", num1, num2, num3, num4, num5);//输出字符中各个元音字符的个数
		if (n > 0)
			printf("\n");
	}
	system("pause");//在hdu中运行时,要删除
	return 0;
}


你可能感兴趣的:(HDU水题)