编写一程序,用于统计从键盘输入的字符串中的元音字母(a,A,e,E,i,I,o,O,u,U)的个数。
标签:style blog http io ar color os sp on
http://oj.hi-hi.cn/JudgeOnline/problem.php?cid=1088&pid=9
编写一程序,用于统计从键盘输入的字符串中的元音字母(a,A,e,E,i,I,o,O,u,U)的个数。
每行输入一字符串
输出对应字符串中元音字母的个数。
1 #include<stdio.h> 2 int main(void) 3 { 4 char ch; 5 int i=0; 6 while(scanf("%c",&ch)!=EOF) 7 { 8 if(ch==‘a‘||ch==‘A‘||ch==‘e‘||ch==‘E‘||ch==‘i‘||ch==‘I‘||ch==‘o‘||ch==‘O‘||ch==‘u‘||ch==‘U‘) 9 i++; 10 if(ch==‘\n‘) 11 { 12 printf("%d\n",i); 13 i=0; 14 } 15 } 16 return 0; 17 }
答案:
解决办法: 在return 0; 前面加上 if(i) printf("%d\n",i); 原因: 文件最后一行有不是以‘\n‘结尾而是直接EOF的,例如最后一行是这样的 ab<EOF> 没有回车。 键盘输入是行缓冲方式,必须回车,然后再按Ctrl+Z产生EOF , 所以从键盘输入无法产生我说的情况,但是OJ测试程序时数据文件有这样的数据。
标签:style blog http io ar color os sp on
原文地址:http://www.cnblogs.com/4bytes/p/4136295.html