題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2027
#include<stdio.h>
int main(){
? ? int a;
? ? while(scanf("%d\n",&a)!=EOF){
? ? ? ? char c;
? ? ? ? while(a--){
? ? ? ? ? ? int an=0,en=0,in=0,on=0,un=0;
? ? ? ? ? ? while(scanf("%c",&c)!=EOF&&c!='\n'){
? ? ? ? ? ? ? ? switch(c){
? ? ? ? ? ? ? ? case 'a':an++;break;
? ? ? ? ? ? ? ? case 'e':en++;break;
? ? ? ? ? ? ? ? case 'i':in++;break;
? ? ? ? ? ? ? ? case 'o':on++;break;
? ? ? ? ? ? ? ? case 'u':un++;break;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? printf("a:%d\n",an);
? ? ? ? ? ? printf("e:%d\n",en);
? ? ? ? ? ? printf("i:%d\n",in);
? ? ? ? ? ? printf("o:%d\n",on);
? ? ? ? ? ? printf("u:%d\n",un);
? ? ? ? ? ? if(a) printf("\n");
? ? ? ? }
? ? }
}
思路:為避免字符串一個(gè)一個(gè)的判斷,采用每輸入一個(gè)就開始判斷腰耙×⒅猓可以快速得到結(jié)果。
錯(cuò)誤地方:一開始在第一個(gè)輸入并沒有加入‘\n’野蝇,導(dǎo)致每次讀入都會都進(jìn)去一個(gè)回車讼稚,導(dǎo)致其開始運(yùn)行。
在第二個(gè)輸入時(shí)沒有加入回車的判斷绕沈,而是在后面加一段判斷回車便break的語句锐想,導(dǎo)致一直失敗。