oj 2027

题目链接: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");

        }

    }

}

思路:为避免字符串一个一个的判断,采用每输入一个就开始判断。可以快速得到结果。

错误地方:一开始在第一个输入并没有加入‘\n’,导致每次读入都会都进去一个回车,导致其开始运行。

在第二个输入时没有加入回车的判断,而是在后面加一段判断回车便break的语句,导致一直失败。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容