16. 数据统计

题目:

输入一些整数,求出它们的最小值,最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。

样例输入:

2  8  3  5  1  7  3  6  

样例输出:

1  8  4.375

 

思路:

因为输入数据的个数不确定,所以要用while循环来读取,同时用累加器 sum 记录总和,计数器 cnt 记录元素个数。

定义一个大整数INF,来给 max 和 min 赋初值。

代码:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
const int INF = 100000000;
int n = 0, sum = 0, cnt = 0;
int max_val = -INF, min_val = INF;
double average = 0.0;

while (cin >> n) {
++cnt;
sum += n;
if (n < min_val) {
min_val = n;
}
if (n > max_val) {
max_val = n;
}
}

average = static_cast<double>(sum) / cnt;
cout << min_val << " " << max_val << " ";
cout << setprecision(3) << fixed << average << endl;

return 0;
}
posted @ 2019-12-29 22:08  Hello_Nolan  阅读(625)  评论(0编辑  收藏  举报