btcq.net
当前位置:首页 >> C语言中 whilE(sCAnF("%D",&A)!=1) printF... >>

C语言中 whilE(sCAnF("%D",&A)!=1) printF...

c语言中所有的非0值都代表truescanf等于得到输入值的输入项的个数,比如输入一个数就返回1,输入两个数返回2

你好!因为q是字符,scanf在缓冲区中读不到整数,每次读取后返回值都是0打字不易,采纳哦!

应该是 scanf("%d",&a),scanf()是一个输入函数,输入一个int值存到a里面,同时scanf是有返回值的,表示输入值的个数,此处若scanf只输入一个变量,其返回值就等于1,while循环条件成立,进入循环体.

scanf 函数有一个返回值,0表示接受输入失败,1表示接受输入成功. while(scanf("%d",&x)==1) 的意思就是: 当接收输入变量x的值成功的时候,继续做循环.

scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回eof.如: scanf("%d %d",&a,&b); 如果a和b都被成功读入,那么scanf的返回值就是2 如果只有a被成功读入,返回值为1 如果a和b都未被成功读入,返回值为0 如果遇到错误或遇到end of file,返回值为eof.且返回值为int型.!scanf("%d",&n)==scanf("%d",&n)=0 ~scanf("%d",&n) ,~为取反(二进制下)

%*c表示读取字符,但是不赋值给字符变量.

while(scanf("%d,%d,%d",&a,&b,&c)!=3){}; // 用是否正确读到 3个数 判断.d=max(a,b,c);printf("%d",d);// } // 去掉}

这个是因为scanf每次只根据你写的格式 读取数据, 比如按你的 如果 输入 1 2 3 4 5 6, 他就会读取俩个数据, 1和2 ,然后输出a+b=3 然后再次进入while循环, 读取俩个数据,3 和4 输出7 但是因为EOF特殊,按回车也会截止, 所以你可以把 EOF换成 0 ,但是这样 你输入a,b的时候 就不可以是0了

scanf返回成功读入的个数,==1表示有输入一个,如果空回车输入,或者多个输入则退出循环,这时候==1就派上用场了.两个等号用于比较.while(scanf("%d",&n) == 1)这句的意思是有一个成功输入则进行循环体内的工作,如果空回车或多输入个数,就是不正确的输入,比如输入:a1之类的,就退出循环了.

这个要从scanf函数的返回值说起.比如scanf("%d", &n);有如下情况:1. 当输入为一个整数时,读取到n,scanf返回值是1(表示成功读取了一个数),ok,继续执行2. 当输入为eof(通常切的题目有多组数据,会使用eof表示输入结束),这

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.btcq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com