C语言,哪位高手帮我看看下面的一道C语言问题,谢谢。

为什么当我就输按一个回车符时,运行结果为:???????lines=1words=1chars=1从这个运行结果来看,编译器把回车符当做了空格('')和制表符('\t')... 为什么当我就输按一个回车符时,运行结果为: ???????
lines = 1
words =1
chars =1
从这个运行结果来看,编译器把回车符当做了空格(' ')和制表符 ( '\t' ),请问是这样的吗?????????????????????

#include <stdio.h>
void main()
{

int lines = 0,words = 0,chars = 0 ,ch;
while(1)
{
switch( ch = getchar() )
{
case '\n': lines++;
case ' ': /* fall thru */
case '\t':words += 1;
default:
chars += 1;
}
if(ch == '\n')
{
break;
}
}
printf("lines = %d\n",lines);
printf("words = %d\n",words);
printf("chars = %d\n",chars);
}
展开
 我来答
sun_siliang
2011-05-10 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4539万
展开全部
//加break可以解决问题!
#include <stdio.h>
void main()
{

int lines = 0,words = 0,chars = 0 ,ch;
while(1)
{
switch( ch = getchar() )
{
case '\n': lines++;break;
case ' ': /* fall thru */
case '\t':words += 1;break;
default:
chars += 1;
}
if(ch == '\n')
{
break;
}
}
printf("lines = %d\n",lines);
printf("words = %d\n",words);
printf("chars = %d\n",chars);
}
freestylehll
2011-05-10 · 超过27用户采纳过TA的回答
知道答主
回答量:157
采纳率:0%
帮助的人:82.1万
展开全部
同楼上 我拿经验的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式