C语言程序运行求解答

#include<stdio.h>和。。。。。。。voidmain(){charc;c=getchar();while(c!='\n')putchar(c);putcha... #include <stdio.h>

和。。。。。。。
void main(){char c;c=getchar();while(c!='\n')putchar(c);putchar('\n');}
结果差别为什么这么大,运行过,或看懂的请回答
展开
 我来答
h425711158
2013-12-24 · TA获得超过109个赞
知道答主
回答量:67
采纳率:0%
帮助的人:50.8万
展开全部
先说第一个,第一个是while((c=getchar()) != '\n')
putchar(c);
注意这里((c=getchar()) != '\n'这个是循环判断条件,就是说计算机接收到的字符不等于换行符的时候,执行循环,一般用来提示用户输出了错误的字符

然后第二个
void main()
{
char c;
c=getchar();
while(c!='\n')
putchar(c);
putchar('\n');
}
这里c = getchar();是在while上面,也就是说这里只接收到了一个字符,然后如果这个不是换行符的话,就输出,如果不是,程序就结束了。如果你想要跟上面第一个达成一样的效果的话,那第二个程序要再加一句

改成这样:
void main()
{
char c;
c = getchar();
while(c != '\n')
{
putchar(c);
putchar('\n');
c=getchar();
}
纯手打,望采纳,以前我也遇到跟你一样的问题,不懂继续追问
zhangsonglin_c
高粉答主

2013-12-24 · 醉心答题,欢迎关注
知道大有可为答主
回答量:3.7万
采纳率:83%
帮助的人:6986万
展开全部
前面一个,c=getchar()在循环体中,每次循环都会读字符,读到回车,退出循环;

后面一个,c=getchar()不在循环中,只读一次。这一次读到的是回车,就不经过循环,输出一个回车后退出;如果读到的不是回车,就会无限次输出这个字符,停不下来。死循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyDXC
2013-12-24 · TA获得超过178个赞
知道答主
回答量:116
采纳率:0%
帮助的人:79.5万
展开全部
第二个程序中c的值一直是第一次你获得的值,并没有改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hgsadjjh047
2013-12-24
知道答主
回答量:50
采纳率:0%
帮助的人:21.7万
展开全部
回车送出一个/n/r
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式