如题所述
while(scanf("%d",&x)==1)相当于 while(1){scanf("%d",&x)}
就是说只要输入成功就进入循环。然后下一次循环前又先输入;
就是说只要输入成功就进入循环。然后下一次循环前又先输入;
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-05-17
2楼正解,scanf 函数成功调用后会返回读入的数的个数,while(scanf("%d",&x)==1)的意思就是一旦scanf函数读取成功,就继续读取,否则跳出循环
第2个回答 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;
}
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;
}
第3个回答 2012-05-17
这里会先执行scanf("%d",&x)也就是输入一个数
然后判断输入数字于1是否相等,不相等就循环,相等就跳出循环
然后判断输入数字于1是否相等,不相等就循环,相等就跳出循环