题目
据说智商140以上者称为天才,KiKi想知道他自己是不是天才,请帮他编程判断。输入一个整数表示一个人的智商,如果大于等于140,则表明他是一个天才,输出“Genius”。
#include<stdio.h>
int main()
{
int iq = 0;
while (scanf("%d", &iq) == 1)
{
if (iq >= 140)
printf("Genius\n");
}
return 0;
}
解答
- 需要输入数值进行判断选择,scanf函数作用为输入数据,数据从键盘读取到内存中。故使用scanf函数输入后在进行判断。
- if语句是选择语句,若大于等于140,则输出Genius。所以首先由if判断是否输出Genius。
- while语句为循环语句。再此程序中可重复检测是否为天才,若输入的数值>=140,则输出Genius,反之无输出。在VS软件中ctrl+z三次可强制退出循环,但其他软件中输入一次即可退出。
- 若想循环scanf输入,可以在while语句中使用scanf(“%d”, &iq) == 1;或者scanf(“%d”, &iq) != EOF;。
scanf(“%d”, &iq) == 1;或者scanf(“%d”, &iq) != EOF;
表示scanf函数读取成功,则进行循环
拓展scanf
int scanf ( const char * format, … );
其中:const char * format为输入格式,例如%d,%c……。“,”后面的…需要地址,表示输入数据后,要存放的地址。
简单的格式字符(截图来自添加链接描述)
scanf函数返回的是读取到数据的个数。如果scanf函数读取失败则会返回EOF,EOF(end of file文件结束标志)本质上=-1。
例如:
int main()
{
int iq = 0;
int n;
n = scanf("%d", &iq);
printf("%d\n",n);
return 0;
}
打印结果为
返回值得到的是输入个数,若输入两个整数,则返回2