1. 程式人生 > >杭電oj編碼2027

杭電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<iostream>
#include<stdio.h>
#include<string.h>
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;
}