16.データ統計

1083 ワード

タイトル:
いくつかの整数を入力して、最小値、最大値、平均値(3桁の小数を保持)を求めます.これらの数が1000を超えない整数であることを保証します.
サンプル入力:
2  8  3  5  1  7  3  6  
サンプル出力:
1  8  4.375
 
考え方:
入力データの個数が不確定であるため、whileサイクルで読み出し、同時にアキュムレータsumで合計を記録し、カウンタcntで要素の個数を記録する.
大きい整数INFを定義して、maxとminに初期値を与えます.
コード:
#include 
#include
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(sum) / cnt;
cout << min_val << " " << max_val << " ";
cout << setprecision(3) << fixed << average << endl;

return 0;
}