对接之前的文章:英语单词学习软件【动态分配空间】
题引:
输入一些整数,求出它们的最小值、最大值、平均值(保留三位小数)。输入保证这些数都是不超过1000的整数。
样例输入:
2 8 3 5 1 7 3 6
样例输出:
1 8 4.375
题解:
不难发现,要输入的整数个数是不确定的。
法一:
#include<stdio.h>
int main()
{
int x, n = 0, min = 1000, max = 0, s = 0;
while (scanf("%d", &x) == 1)
{
s += x;
if (x < min)min = x;
if (x > max)max = x;
n++;
}
printf("%d %d %.3f", min, max, (double)s / n);
return 0;
}
解析此码:whie循环中“scanf(“%d”, &x) == 1”是条件,scanf函数有返回值?对,scanf函数返回的是成功输入的变量个数,当输入结束时,scanf函数无法再次读取x,将返回0。
下面进行测试。输入“2 8