C语言基础问题, while (scanf("%1f%d",&x,&y) ==2) ==2是什么意思?和==1一样吗?为什么要==2?

如题所述

第1个回答  推荐于2018-04-05
scanf 函数是有返回值的,它的返回值可以分成三种情况
1、正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);
如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);
如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
2、返回0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。
3、返回EOF,这是在stdio.h里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。

while是一个循环,while后面的括号里的内容,表示判断内容,如果判断成立,则执行while的循环体。
while (scanf("%1f%d",&x,&y) ==2)的判断条件就是scanf("%1f%d",&x,&y) ==2,就是说scanf的返回值是2,2和2相等,判断条件成立,为真,执行循环。

如有疑问请您追问。本回答被提问者和网友采纳

C语言程序奇偶数问题
} printf("%.1f\\n",sum*1.0\/num);break;} if(a>0&&a%2==1){ sum+=a;num++;} } }

c语言 分段函数求值
还有我的老师告诉我,使用float不要用x==0这种表达方式,,因为float类型的等于其实就是在有限的位数上比较大小。。。当数字极小或者极大的时候就会出现不相等的数字会出现相等的情况了。换成double就行了 include "stdio.h"void main(){ double a=0.0;while(scanf("%lf",&a)!=EOF){ if(a>...

C语言设置问题
scanf("%d",&n);\/\/不知道你是不是想用变量来控制 改成while(scanf("%d",&n)&&n!=-1)主函数下面的程序用括号括起来。也可以 while(1){ if(某个值!=-1.0)break;else{其他} }

在C语言中,什么是迭代法?
第 15 次分裂之后的个数为 x 15 ,则有x 14 =x 15 \/2 、 x 13 =x 14 \/2 、…… x n-1 =x n \/2 (n ≥ 1)因为第 15 次分裂之后的个数 x 15 是已知的,如果定义迭代变量为 x ,则可以将上面的倒推公式转换成如下的迭代公式:x=x\/2 (x 的初值为第 15 次分裂之后的个数 2^20)让这个...

编程如何用C语言编写一个学生成绩管理系统程序
scanf("%f",&p1->cj3);} \/*输入错误,重新输入cj3直到正确为止*\/ head=NULL;while(p1->number!=0){ n=n+1;if(n==1) head=p1;else p2->next=p1; p2=p1; p1=(score *)malloc(LEN); printf("请输入学生资料,输0退出!\\n");repeat2:printf("请输入学生学号(学号应大于0):"); scanf("%d"...

c语言实现学生成绩管理系统
scanf("%d",&c); if(c==1) { a[i]=a[i+1]; m--; printf("删除成功!\\n");break; } else break; } } if(i==n) { printf("你输入的学号不存在!\\n"); } if(c==1) { printf("是否继续删除1继续0退出(1\/0)!\\n"); scanf("%d",&d); system("cls"); } }while(d==1);}vo...

共3门学科,要求用C语言编程,输入全班成绩,并把它们的平均分进行排序,如 ...
char *nameSave=(char *)malloc(sizeof(char)*nameLen); XK xk[3];\/\/记录三科名称及平均分 \/\/录入成绩 printf("录入%d名学生的语文成绩:\\n",stuNum); for(i=0;i<stuNum;i++) { scanf("%d",&y[i]); sum[0]=sum[0]+y[...

用C语言编写学生管理系统界面
scanf("%d",&choose);\/*取得用户的选择*\/ switch(choose) { case 1:OutputInformation();\/*显示所有学生的信息*\/ break; case 2: DesplayInfoBystudentName(); break; case 3: DesplayInfoBystudentNumber();\/*根据用户输入的学号显示该学生的信息*\/ break; case 4: p=MallocNode();\/*先申请一个新...

C语言:输入一组正整数,0代表输入结束。计算这一组正整数中奇数的平均值...
include<stdio.h>int main(){int x,n=0,f1=0,f2=1; scanf("%d",&x); while(x) {if(x%2) {f1+=x; n++;} else f2*=x; scanf("%d",&x); } printf("%.1f %d\\n",(float)f1\/n,f2); return 0;}

C语言问题编程问题?
while(n<0 || n>30) scanf("%d",&n);if(!n) return 0;for(i=0;i<n;scanf("%f",&scores[i]),sum+=scores[i],i++)printf("请输入学生%d分数:",i+1);printf("%d名学生的平均分为%.1f\\n",n,sum\/i);for(i=0,printf("开始降序排序\\n");i<n-1;i++)for(j=i+1;j<...

相似回答