码迷,mamicode.com
首页 > 其他好文 > 详细

雪泥鸿爪-教学中的debug(13) EOF与换行符

时间:2014-12-08 22:53:13      阅读:344      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   sp   on   

http://oj.hi-hi.cn/JudgeOnline/problem.php?cid=1088&pid=9

问题 J: 实验8_5:统计元音字母个数

题目描述

编写一程序,用于统计从键盘输入的字符串中的元音字母(a,A,e,E,i,I,o,O,u,U)的个数。

输入

每行输入一字符串

输出

输出对应字符串中元音字母的个数。

样例输入

abcio efgaeio ak akkkksd

样例输出

3 5 2
 
学生问, 请问这个错在哪儿?样例输出是正确的啊
 
 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 }

答案:

bubuko.com,布布扣
解决办法:

在return 0; 前面加上
if(i) printf("%d\n",i);

原因:

 文件最后一行有不是以\n结尾而是直接EOF的,例如最后一行是这样的 ab<EOF> 没有回车。

键盘输入是行缓冲方式,必须回车,然后再按Ctrl+Z产生EOF , 所以从键盘输入无法产生我说的情况,但是OJ测试程序时数据文件有这样的数据。
View Code

 

 



雪泥鸿爪-教学中的debug(13) EOF与换行符

标签:style   blog   http   io   ar   color   os   sp   on   

原文地址:http://www.cnblogs.com/4bytes/p/4136295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!