在书中看到这个题型,觉得很有学习价值。这个题型是为了在算法竞赛中提高效率的一种方法,此文为总结概括。
题目:数据统计
输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。
样例输入:
2 8 3 5 1 7 3 6
样例输出:
1 8 4.375
分析:整数的个数不确定。
方法一:(有bug)
//C
#include<stdio.h>
int main()
{
int x, n = 0, min, max, s = 0;
while(scanf("%d", &x) == 1) //1为单个赋值,如果有两个参数就为2,使用Ctrl+Z结束循环条件
{
s += x;
if(x < min) min = x;
if(x > max) max = x;
n++;
}
printf("%d %d %.3f\n", min, max, (double)s/n);
return 0;
}
//C++
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
while((cin>>x),x) //当最后一个x输入为0时,跳出循环
{
s += x;
if(x < min)