scanf函数多组输入数据以及scanf函数的返回值是什么?

目录:

一、多组输入数据一定是循环

二、scanf函数的返回值是什么?

三、循环与scanf结合

详细:

一、多组输入数据一定是循环

先上例题:
从键盘输入的两个数的大小关系,请编程实现。
输入描述:
题目有多组输入数据,每一行输入两个整数(范围-231~231-1),用空格分隔。
输出描述:
针对每行输入,输出两个整数及其大小关系,数字和关系运算符之间没有空格,详见输入输出样例。

 示例1:输入:1 1
		输出:1=1
示例2:输入:1 0
       输出:1>0
示例3:输入:0 1
	   输出:0<1

那有的同学就会想我直接:

int main() {
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    {
        if (a > b)
            printf("%d>%d\n", a, b);
        else if (a < b)
            printf("%d<%d\n", a, b);
        else
            printf("%d=%d\n", a, b);
    }
    return 0;
}

但真的对吗?
在这里插入图片描述
我只输入了一组数字就返回结果退出来了!!
题目可是多组输入数据
那我就必定需要运用到循环语句

二、scanf函数的返回值是什么?

在我们写此代码前,我们一定要知道是scanf函数返回的值是什么?scanf的返回值是实际读到的数据的个数 至于什么意思?老样子,上例子!

#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);
    printf("%d %d", a, b);
}

在这里插入图片描述
在这里插入图片描述

输入5 4 就能打印出5 4
输入5 4 0 也只能打印出5 4,
因为只能打印两个数,所以0是读取失败的当scanf读取失败的时候返回的是EOF
EOF的意思是 End of file 文件结束标志
这就是scanf的返回值是实际读到的数据的个数

三、循环与scanf结合

那我们就需要把scanf函数放在循环中例如while
while (scanf(“%d %d”, &a, &b==2)),因为我们要输入两个int值,所以 ==2

int main()
{
    int a = 0;
    int b = 0;
    while (scanf("%d %d", &a, &b) == 2)
    {
        if (a > b)
            printf("%d>%d\n", a, b);
        else if (a < b)
            printf("%d<%d\n", a, b);
        else
            printf("%d=%d\n", a, b);
    }
    return 0;
}

在这里插入图片描述

大家想退出的时候按ctrl+z 三次!!!

接下来我们在巩固一题:
据说智商140以上者称为天才,KiKi想知道他自己是不是天才,请帮他编程判断。输入一个整数表示一个人的智商,如果大于等于140,则表明他是一个天才,输出“Genius”。
输入描述:
多组输入,每行输入包括一个整数表示的智商。
输出描述:
针对每行输入,输出“Genius”。

示例1
输入:160
输出:Genius

while (scanf(“%d”, &iq) == 1),因为我们要输入1个int值,所以 ==1

int main() 
{
	   int iq = 0;
	   while (scanf("%d", &iq) == 1)
	   {
	       if (iq >= 140)
	           printf("Genius\n");
	    }	
	    return 0;
	}

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阔步昂首

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值