输入输出框架(未完待续)
输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。 输入保证这些数都是不超过1000的整数。
样例输入:
2 8 3 5 1 7 3 6
样例输出:
1 8 4.375
#include <stdio.h> int main() { int n=0, x, min, max, s=0; while (scanf("%d", &x)==1) { s += x; if (x > max) max = x; if (x < min) min = x; ++n; } printf("%d %d %.3f\n", min, max, double(s) / n); return 0; }
-
scanf函数有返回值?
对,它返回的是成功输入的变量个
数,当输入结束时,scanf函数无法再次读取x,将返回0。 -
输入结束
Windows下,Ctrl+D键,再按Enter键,即可结束输入。
变量在未赋值之前的值是不确定的,它不一定等于0.
解决的方法就是在使用之前对max和min赋值。先读取第一个数x,然后令max=min=x。
上面程序并不是很方便:每次测试需要手动输入许多数。一个好的方法是用文件,把输入数据保存在文件中,输出数据也保存在文件中,这样,只要事先把输入数据保存在文件中,就不必每次重新输入了;数据输出在文件中也避免“输出太多”。运行结束后慢慢浏览输出文件即可。如果有标准答案还可以与输出文件比较。无需检查输出是否正确。