#include <stdio.h>
#include <math.h>
#define MAX_STUDENTS 10
#define SUBJECTS 2
int main() {
int scores[MAX_STUDENTS][SUBJECTS];
int num_students;
printf("学生の人数を入力してください(最大10人):");
scanf("%d", &num_students);
if (num_students < 1 || num_students > MAX_STUDENTS) {
printf("無効な人数です。\n");
return 1;
}
// 得点の入力
for (int i = 0; i < num_students; i++) {
printf("\n学生%dの得点を入力してください:\n", i + 1);
for (int j = 0; j < SUBJECTS; j++) {
printf(" 科目%d: ", j + 1);
scanf("%d", &scores[i][j]);
}
}
// 各科目の統計処理
for (int subj = 0; subj < SUBJECTS; subj++) {
int min = scores[0][subj];
int max = scores[0][subj];
double sum = 0.0;
double variance = 0.0;
for (int i = 0; i < num_students; i++) {
int score = scores[i][subj];
if (score < min) min = score;
if (score > max) max = score;
sum += score;
}
double average = sum / num_students;
for (int i = 0; i < num_students; i++) {
variance += pow(scores[i][subj] - average, 2);
}
variance /= num_students;
printf("\n科目%dの結果:\n", subj + 1);
printf(" 最低点: %d\n", min);
printf(" 最高点: %d\n", max);
printf(" 平均点: %.2f\n", average);
printf(" 分散 : %.2f\n", variance);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgojZGVmaW5lIE1BWF9TVFVERU5UUyAxMAojZGVmaW5lIFNVQkpFQ1RTIDIKCmludCBtYWluKCkgewogICAgaW50IHNjb3Jlc1tNQVhfU1RVREVOVFNdW1NVQkpFQ1RTXTsKICAgIGludCBudW1fc3R1ZGVudHM7CiAgICAKICAgIHByaW50Zigi5a2m55Sf44Gu5Lq65pWw44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GE77yI5pyA5aSnMTDkurrvvInvvJoiKTsKICAgIHNjYW5mKCIlZCIsICZudW1fc3R1ZGVudHMpOwoKICAgIGlmIChudW1fc3R1ZGVudHMgPCAxIHx8IG51bV9zdHVkZW50cyA+IE1BWF9TVFVERU5UUykgewogICAgICAgIHByaW50Zigi54Sh5Yq544Gq5Lq65pWw44Gn44GZ44CCXG4iKTsKICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICAvLyDlvpfngrnjga7lhaXlipsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3N0dWRlbnRzOyBpKyspIHsKICAgICAgICBwcmludGYoIlxu5a2m55SfJWTjga7lvpfngrnjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTvvJpcbiIsIGkgKyAxKTsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IFNVQkpFQ1RTOyBqKyspIHsKICAgICAgICAgICAgcHJpbnRmKCIgIOenkeebriVkOiAiLCBqICsgMSk7CiAgICAgICAgICAgIHNjYW5mKCIlZCIsICZzY29yZXNbaV1bal0pOwogICAgICAgIH0KICAgIH0KCiAgICAvLyDlkITnp5Hnm67jga7ntbHoqIjlh6bnkIYKICAgIGZvciAoaW50IHN1YmogPSAwOyBzdWJqIDwgU1VCSkVDVFM7IHN1YmorKykgewogICAgICAgIGludCBtaW4gPSBzY29yZXNbMF1bc3Vial07CiAgICAgICAgaW50IG1heCA9IHNjb3Jlc1swXVtzdWJqXTsKICAgICAgICBkb3VibGUgc3VtID0gMC4wOwogICAgICAgIGRvdWJsZSB2YXJpYW5jZSA9IDAuMDsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fc3R1ZGVudHM7IGkrKykgewogICAgICAgICAgICBpbnQgc2NvcmUgPSBzY29yZXNbaV1bc3Vial07CiAgICAgICAgICAgIGlmIChzY29yZSA8IG1pbikgbWluID0gc2NvcmU7CiAgICAgICAgICAgIGlmIChzY29yZSA+IG1heCkgbWF4ID0gc2NvcmU7CiAgICAgICAgICAgIHN1bSArPSBzY29yZTsKICAgICAgICB9CgogICAgICAgIGRvdWJsZSBhdmVyYWdlID0gc3VtIC8gbnVtX3N0dWRlbnRzOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bV9zdHVkZW50czsgaSsrKSB7CiAgICAgICAgICAgIHZhcmlhbmNlICs9IHBvdyhzY29yZXNbaV1bc3Vial0gLSBhdmVyYWdlLCAyKTsKICAgICAgICB9CgogICAgICAgIHZhcmlhbmNlIC89IG51bV9zdHVkZW50czsKCiAgICAgICAgcHJpbnRmKCJcbuenkeebriVk44Gu57WQ5p6c77yaXG4iLCBzdWJqICsgMSk7CiAgICAgICAgcHJpbnRmKCIgIOacgOS9jueCuTogJWRcbiIsIG1pbik7CiAgICAgICAgcHJpbnRmKCIgIOacgOmrmOeCuTogJWRcbiIsIG1heCk7CiAgICAgICAgcHJpbnRmKCIgIOW5s+Wdh+eCuTogJS4yZlxuIiwgYXZlcmFnZSk7CiAgICAgICAgcHJpbnRmKCIgIOWIhuaVoyAgOiAlLjJmXG4iLCB2YXJpYW5jZSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K