c语言学习之小知识点

今天我来介绍一个有关scanf函数知识点

一、scanf的返回值

对于很多c语言初学者来说,对于scanf的返回值是比较陌生的。

事实上,scanf函数是有返回值的。

返回的是scanf函数实际读取到的数据的个数!!!!!

让我们通过代码来理解。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	int get = scanf("%d%d", &a, &b);
	printf("%d\n", get);
	printf("%d\n", a);
	printf("%d\n", b);

	return 0;
}

编译结果:

 

 分析:我们定义了“get”来存储scanf函数的返回值。在编译过程中,我分别对a和b输入了100和200这两个数据,接着就打印get,a,b的值

当程序运行结束,我们看到get的值为2,而我们是输入了两个有效数据,二者是对应起来的。

让我们在看一组结果:

分析:程序在这次的运行 ,我分别对a和b输入了100和a,而我们在输入的数据要求是整形,a是字符型。所以“a”不是此次输入数据的有效值,从结果的get=1和b=20可以佐证这一点。

结论:scanf函数是有返回值的,返回值是代表scanf函数读取的有效数据的个数。读取失败返回的是EOF。

二、scanf返回值的用途

既然返回值是一个数值,那么我们可以利用这个返回值的特点做一个判断,用于这些程序的多次输入判断

以这个题为例:

描述:
据说智商140以上者称为天才,KiKi想知道他自己是不是天才,
 请帮他编程判断。输入一个整数表示一个人的智商,如果大于等于140,则表明他是一个天才,输出“Genius”。

输入描述:
多组输入,每行输入包括一个整数表示的智商。

输出描述:
针对每行输入,输出“Genius”。

程序:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	int iq = 0;
	while (scanf("%d", &iq) != EOF)  //多次输入,每一次都可以利用返回值的特点进行条件判断
	{
		if (iq >= 140)
		{
			printf("Genius");
		}
	}
	return 0;
}

运行结果

分析:此程序用scanf的返回值是否有效作为whlie循环的判定条件,从而实现多次输入,多次判断。

这个题的解法有很多种,scanf函数的返回值用途也有很多,欢迎大神来开发与交流。

今日的分享就到这里,c语言小白一枚,博客有不足之外,还望各位斧正,感谢浏览!de

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值