C语言 关于当输入0时结束程序的问题

本人是初学者,大致的代码是这样的#include<stdio.h>intmain(){inta,.......;while(scanf("%d",&a)!=0){....... 本人是初学者,大致的代码是这样的
#include<stdio.h>
int main()
{
int a, .......;
while(scanf("%d",&a)!=0){

..................;(中间就不写了 不是关键)
}
return 0;
}
关键在于while语句 当我输入0 的时候 整个程序并没有结束 而是停下来了 为什么???
展开
 我来答
maijb
2013-08-02 · TA获得超过1.1万个赞
知道大有可为答主
回答量:4107
采纳率:88%
帮助的人:4619万
展开全部
(scanf("%d",&a)!=0)
的意思是:scanf("%d",&a)这个操作没有不成功,成功录入则为1,失败则为0;
与输入是否为0是不同概念,请注意区分~

建议您改为:
{
int a, .......;
scanf("%d",&a);
while(a!=0){

.................
scanf("%d",&a).;
}

不懂请追问,希望我的回答帮得到您,来自【百度懂你】团队,满意请采纳噢~O(∩_∩)O~
tattackor
推荐于2017-09-27 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:891万
展开全部
1、(scanf("%d",&a)!=0)
的意思是:scanf("%d",&a)这个操作没有不成功,成功录入则为1,失败则为0;与输入是否为0是不同概念,请注意区分。

2、如果要输入为0结束可改为:
int a, .......;
scanf("%d",&a);
while(a!=0){
.................
scanf("%d",&a).;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳顶天鹿鼎记
2013-08-02 · TA获得超过502个赞
知道小有建树答主
回答量:675
采纳率:100%
帮助的人:406万
展开全部
你好,你这个while判断的条件是scanf()函数的返回值不等于0的时候,执行循环
scanf()函数的返回值返回成功接收的变量值的个数
而你本意应该是a的值等于0时,即输入0时,退出循环
可以改成这样
int a =1;
while(a != 0)
{
scanf("%d",&a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
范德萨了就
2013-08-02 · 超过17用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:51.5万
展开全部
scanf的返回值是其成功读取值的变量的个数。
比如你的这个scanf("%d", &a)成功的话返回值应该为1,所以不等于0,所以就继续循环了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6ddfe974a
2013-08-02 · 超过12用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:42.5万
展开全部
scanf()函数返回成功赋值的数据项数,出错时则返回EOF。建议楼主看一下scanf()的用法。http://www.oschina.net/question/234345_43611
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式