#include <stdio.h>
#define STUDENTS 10
#define SUBJECTS 2
int main() {
int scores[STUDENTS][SUBJECTS];
int n, i, j;
int sum[SUBJECTS] = {0};
int sum_sq[SUBJECTS] = {0};
int min[SUBJECTS], max[SUBJECTS];
int avg[SUBJECTS];
int variance[SUBJECTS];
// 人数入力
if (n < 1 || n > STUDENTS) {
return 1;
}
// 得点入力
for (i = 0; i < n; i++) {
printf("%d人目の得点を入力(科目1 科目2):", i
+ 1); for (j = 0; j < SUBJECTS; j++) {
scanf("%d", &scores
[i
][j
]); }
}
// 初期化
for (j = 0; j < SUBJECTS; j++) {
min[j] = scores[0][j];
max[j] = scores[0][j];
}
// 集計処理
for (j = 0; j < SUBJECTS; j++) {
for (i = 0; i < n; i++) {
int val = scores[i][j];
sum[j] += val;
sum_sq[j] += val * val;
if (val < min[j]) min[j] = val;
if (val > max[j]) max[j] = val;
}
avg[j] = sum[j] / n;
variance[j] = (sum_sq[j] / n) - (avg[j] * avg[j]);
}
// 結果出力
for (j = 0; j < SUBJECTS; j++) {
printf("\n科目%dの統計:\n", j
+ 1); printf("分散 : %d\n", variance
[j
]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIFNUVURFTlRTIDEwCiNkZWZpbmUgU1VCSkVDVFMgMgoKaW50IG1haW4oKSB7CiAgICBpbnQgc2NvcmVzW1NUVURFTlRTXVtTVUJKRUNUU107CiAgICBpbnQgbiwgaSwgajsKICAgIGludCBzdW1bU1VCSkVDVFNdID0gezB9OwogICAgaW50IHN1bV9zcVtTVUJKRUNUU10gPSB7MH07CiAgICBpbnQgbWluW1NVQkpFQ1RTXSwgbWF4W1NVQkpFQ1RTXTsKICAgIGludCBhdmdbU1VCSkVDVFNdOwogICAgaW50IHZhcmlhbmNlW1NVQkpFQ1RTXTsKCiAgICAvLyDkurrmlbDlhaXlipsKICAgIHByaW50Zigi5a2m55Sf5pWw44KS5YWl5Yqb77yI5pyA5aSnMTDkurrvvInvvJoiKTsKICAgIHNjYW5mKCIlZCIsICZuKTsKCiAgICBpZiAobiA8IDEgfHwgbiA+IFNUVURFTlRTKSB7CiAgICAgICAgcHJpbnRmKCLkurrmlbDjgYzkuI3mraPjgafjgZnjgIJcbiIpOwogICAgICAgIHJldHVybiAxOwogICAgfQoKICAgIC8vIOW+l+eCueWFpeWKmwogICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHByaW50ZigiJWTkurrnm67jga7lvpfngrnjgpLlhaXlipvvvIjnp5Hnm64xIOenkeebrjLvvInvvJoiLCBpICsgMSk7CiAgICAgICAgZm9yIChqID0gMDsgaiA8IFNVQkpFQ1RTOyBqKyspIHsKICAgICAgICAgICAgc2NhbmYoIiVkIiwgJnNjb3Jlc1tpXVtqXSk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIOWIneacn+WMlgogICAgZm9yIChqID0gMDsgaiA8IFNVQkpFQ1RTOyBqKyspIHsKICAgICAgICBtaW5bal0gPSBzY29yZXNbMF1bal07CiAgICAgICAgbWF4W2pdID0gc2NvcmVzWzBdW2pdOwogICAgfQoKICAgIC8vIOmbhuioiOWHpueQhgogICAgZm9yIChqID0gMDsgaiA8IFNVQkpFQ1RTOyBqKyspIHsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGludCB2YWwgPSBzY29yZXNbaV1bal07CiAgICAgICAgICAgIHN1bVtqXSArPSB2YWw7CiAgICAgICAgICAgIHN1bV9zcVtqXSArPSB2YWwgKiB2YWw7CiAgICAgICAgICAgIGlmICh2YWwgPCBtaW5bal0pIG1pbltqXSA9IHZhbDsKICAgICAgICAgICAgaWYgKHZhbCA+IG1heFtqXSkgbWF4W2pdID0gdmFsOwogICAgICAgIH0KICAgICAgICBhdmdbal0gPSBzdW1bal0gLyBuOwogICAgICAgIHZhcmlhbmNlW2pdID0gKHN1bV9zcVtqXSAvIG4pIC0gKGF2Z1tqXSAqIGF2Z1tqXSk7CiAgICB9CgogICAgLy8g57WQ5p6c5Ye65YqbCiAgICBmb3IgKGogPSAwOyBqIDwgU1VCSkVDVFM7IGorKykgewogICAgICAgIHByaW50ZigiXG7np5Hnm64lZOOBrue1seioiDpcbiIsIGogKyAxKTsKICAgICAgICBwcmludGYoIuacgOWwj+eCuTogJWRcbiIsIG1pbltqXSk7CiAgICAgICAgcHJpbnRmKCLmnIDlpKfngrk6ICVkXG4iLCBtYXhbal0pOwogICAgICAgIHByaW50Zigi5bmz5Z2H54K5OiAlZFxuIiwgYXZnW2pdKTsKICAgICAgICBwcmludGYoIuWIhuaVoyAgOiAlZFxuIiwgdmFyaWFuY2Vbal0pOwogICAgfQoKICAgIHJldHVybiAwOwp9Cgo=