1.多组输入的代码实现
while(scanf("%d", &n) != EOF)
举例
据说智商140以上者称为天才,KiKi想知道他自己是不是天才,请帮他编程判断。输入一个整数表示一个人的智商,如果大于等于140,则表明他是一个天才,输出“Genius”。
输入描述:
多组输入,每行输入包括一个整数表示的智商。
输出描述:
针对每行输入,输出“Genius”。
int main()
{
int n = 0;
while(scanf("%d",&n)!= EOF)//多组输入
{
if(n>=140)
printf("Genius");
}
return 0;
}
2.介绍scanf的返回值
scanf() 的返回值是⼀个整数,表示成功读取的变量个数。 如果没有读取任何项,或者匹配失败,则返回 0 。 如果在成功读取任何数据之前,发生了读取错误或者遇到读取到⽂件结尾,则返回常量EOF(-1)。 EOF-end of file 文件结束标志。
3.代码解读
while(scanf("%d", &n) != EOF):whlie循环要运行,先判断表达式scanf("%d", &n) != EOF的真假。
这里让scanf("%d", &n) != EOF先运行起来,读取一个数字输入数字n,然后scanf返回一个值,若成功读取则返回值1,此时while循环判断表达式scanf("%d", &n) != EOF为真,进入循环,实现多组输入。
如果成功读取任何数据之前,发生了读取错误或者遇到读取到文件结尾,则返回常量EOF(-1),此时while循环判断表达式scanf("%d", &n) != EOF为假,跳出循环。