现在越来越多的学校使用了OJ(online jude)平台,在上面发布比赛,通过编译运行选手们提交的代码来获取输出结果,与题目所给的正确输出结果对比,来判断参赛选手的代码正确性。那么我们在使用OJ平台刷题时,也需要根据题目意思注意一下最基本的输入数据处理。
首先,我们先来讨论一个细节问题。
C语言中的scanf函数想必大家再熟悉不过了,但肯定会有很多人,不知道这个函数也是有返回值的,我们先来看一下如下一段代码:
代码1
int n,m;
printf("%d",scanf("%d%d",&n,&m));
执行此代码,我们可以发现,scanf(…)表达式的值为int,表示的是成功读入的变量的个数。下面提供了几组输入数据
输入:12 56<回车> 输出:2
输入:40 a<回车> 输出:1
分析这两组数据,我们可以发现如果用户输入的数据类型与指定的数据类型不同,是不能被记作成功读入变量。如果遇到了下面这种情况:
输入:a 40<回车> 输出:0
可见,只要第一个没有成功读入,该函数也不会继续