c语言中while(scanf("%d",&x)==1)是什么意思?

 我来答
lj84386655
推荐于2017-09-10 · TA获得超过944个赞
知道小有建树答主
回答量:358
采纳率:100%
帮助的人:241万
展开全部
while(scanf("%d",&x)==1)相当于 while(1){scanf("%d",&x)}

就是说只要输入成功就进入循环。然后下一次循环前又先输入;
亥凝思3q
2012-05-17 · TA获得超过313个赞
知道小有建树答主
回答量:400
采纳率:14%
帮助的人:170万
展开全部
2楼正解,scanf 函数成功调用后会返回读入的数的个数,while(scanf("%d",&x)==1)的意思就是一旦scanf函数读取成功,就继续读取,否则跳出循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2020-07-21
展开全部
scanf("%d",&i)表示输入一个十进制整数,如果成功返回值为1,否则返回值为0
while(scanf("%d",&i)==1)表示,如果scanf()读入成功,while(1=1为真),满足循环条件,可以进入while循环,如果不成功(输入非十进制整数,如字符等),while(0=1为假),不进入while循环。while(scanf("%d",&i)==1)可以多次输入测试数据,避免重复多次运行程序。
while(scanf("%d",&i)!=1)和上面相反,scanf()成功读入,while(1!=1为假),不循环,不成功,while(0!=1),进入循环。while(scanf("%d",&i)!=1)常用于提示用户错误输入。如:
int get_int(void){
int input;
char ch;
while(scanf("%d",&input)!=1)
{
while((ch=getchar(ch)!='\n')
{

putchar(ch);//显示错误输入给用户

}

printf(" 为非十进制整数,请输入十进制整数,例如,8,28,128")

}

return input;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xu7473309
2012-05-17
知道答主
回答量:38
采纳率:100%
帮助的人:11.9万
展开全部
这里会先执行scanf("%d",&x)也就是输入一个数
然后判断输入数字于1是否相等,不相等就循环,相等就跳出循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式