17. 数据统计2

题目:

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

输入包含多组数据,每组数据第一行是整数个数 n ,第二行是 n 个整数。 n = 0 为输入结束标记,程序应当忽略这组数据。相邻两组数据之间应输出一个空行。

样例输入:

8

2  8  3  5  1  7  3  6  

4

-4  6  10  0

0

样例输出:

Case 1:1  8  4.375

Case 2:-4   10   3.000

思路:

这一题与上一题的核心几乎一样,但是多了一些细节处理。

第一,要读入多组数据,并且每组数据都会给出数量。用变量 n 来记录数据数量,然后循环读入每个数据,按照步骤计算即可。

第二,要输出数据编号,于是使用一个数据编号计数器,在每一组有效数据读入后,就进行累加。

代码:

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

int main()
{
const int INF = 100000000;
int n = 0, cnt = 0;
cin >> n;

while (n) {
++cnt;
int term = 0;
int max_val = -INF, min_val = INF;
int sum = 0;

for (int i = 0; i < n; ++i) {
cin >> term;
sum += term;
if (term > max_val) {
max_val = term;
}
if (term < min_val) {
min_val = term;
}
}
double average = static_cast<double>(sum) / n;
cout << "Case " << cnt << ": " << min_val << " " << max_val << " ";
cout << setprecision(3) << fixed << average << endl;

cin >> n;
}

return 0;
}

猜你喜欢

转载自www.cnblogs.com/Hello-Nolan/p/12117194.html
今日推荐