#include <stdio.h>
#define MAX 100 // 配列の最大サイズ
int seiseki[MAX]; // 成績を格納する配列
int size = 0; // 入力された成績の個数
// 成績を記録する関数(record)
void record(int score) {
if (size < MAX) {
seiseki[size] = score; // 配列に点数を記録
size++; // 記録された個数を更新
} else {
}
}
// 平均値を求める関数(average)
double average() {
if (size == 0) return 0.0; // 記録がない場合は0を返す
int sum = 0;
for (int i = 0; i < size; i++) {
sum += seiseki[i]; // 合計を計算
}
return (double)sum / size; // 平均を求める
}
// 条件付きの平均を求める関数(cond_average)
double cond_average(int a, int b) {
int sum = 0, count = 0;
for (int i = 0; i < size; i++) {
if (seiseki[i] >= a && seiseki[i] <= b) { // 指定範囲内の点数のみ考慮
sum += seiseki[i];
count++;
}
}
return (count > 0) ? (double)sum / count : 0.0; // 平均を計算(該当データなしなら0)
}
int main() {
int num;
for (int i = 0; i < num; i++) {
int score;
printf("学生 %d の点数を入力\n", i
+ 1); record(score); // 点数を記録
}
printf("全体の平均点: %.2f\n", average
()); printf("60点以上100点以下の平均点: %.2f\n", cond_average
(60, 100));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE1BWCAxMDAgIC8vIOmFjeWIl+OBruacgOWkp+OCteOCpOOCugppbnQgc2Vpc2VraVtNQVhdOyAgLy8g5oiQ57i+44KS5qC857SN44GZ44KL6YWN5YiXCmludCBzaXplID0gMDsgIC8vIOWFpeWKm+OBleOCjOOBn+aIkOe4vuOBruWAi+aVsAoKLy8g5oiQ57i+44KS6KiY6Yyy44GZ44KL6Zai5pWw77yIcmVjb3Jk77yJCnZvaWQgcmVjb3JkKGludCBzY29yZSkgewogICAgaWYgKHNpemUgPCBNQVgpIHsKICAgICAgICBzZWlzZWtpW3NpemVdID0gc2NvcmU7ICAvLyDphY3liJfjgavngrnmlbDjgpLoqJjpjLIKICAgICAgICBzaXplKys7ICAvLyDoqJjpjLLjgZXjgozjgZ/lgIvmlbDjgpLmm7TmlrAKICAgIH0gZWxzZSB7CiAgICAgICAgcHJpbnRmKCLlhaXlipvkuIrpmZDjgavpgZTjgZfjgb7jgZfjgZ/jgIJcbiIpOwogICAgfQp9CgovLyDlubPlnYflgKTjgpLmsYLjgoHjgovplqLmlbDvvIhhdmVyYWdl77yJCmRvdWJsZSBhdmVyYWdlKCkgewogICAgaWYgKHNpemUgPT0gMCkgcmV0dXJuIDAuMDsgIC8vIOiomOmMsuOBjOOBquOBhOWgtOWQiOOBrzDjgpLov5TjgZkKCiAgICBpbnQgc3VtID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CiAgICAgICAgc3VtICs9IHNlaXNla2lbaV07ICAvLyDlkIjoqIjjgpLoqIjnrpcKICAgIH0KICAgIHJldHVybiAoZG91YmxlKXN1bSAvIHNpemU7ICAvLyDlubPlnYfjgpLmsYLjgoHjgosKfQoKLy8g5p2h5Lu25LuY44GN44Gu5bmz5Z2H44KS5rGC44KB44KL6Zai5pWw77yIY29uZF9hdmVyYWdl77yJCmRvdWJsZSBjb25kX2F2ZXJhZ2UoaW50IGEsIGludCBiKSB7CiAgICBpbnQgc3VtID0gMCwgY291bnQgPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKICAgICAgICBpZiAoc2Vpc2VraVtpXSA+PSBhICYmIHNlaXNla2lbaV0gPD0gYikgeyAgLy8g5oyH5a6a56+E5Zuy5YaF44Gu54K55pWw44Gu44G/6ICD5oWuCiAgICAgICAgICAgIHN1bSArPSBzZWlzZWtpW2ldOwogICAgICAgICAgICBjb3VudCsrOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAoY291bnQgPiAwKSA/IChkb3VibGUpc3VtIC8gY291bnQgOiAwLjA7ICAvLyDlubPlnYfjgpLoqIjnrpfvvIjoqbLlvZPjg4fjg7zjgr/jgarjgZfjgarjgokw77yJCn0KCmludCBtYWluKCkgewogICAgaW50IG51bTsKICAgIHByaW50Zigi5a2m55Sf44Gu5Lq65pWw44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOlxuIik7CiAgICBzY2FuZigiJWQiLCAmbnVtKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bTsgaSsrKSB7CiAgICAgICAgaW50IHNjb3JlOwogICAgICAgIHByaW50Zigi5a2m55SfICVkIOOBrueCueaVsOOCkuWFpeWKm1xuIiwgaSArIDEpOwogICAgICAgIHNjYW5mKCIlZCIsICZzY29yZSk7CiAgICAgICAgcmVjb3JkKHNjb3JlKTsgIC8vIOeCueaVsOOCkuiomOmMsgogICAgfQoKICAgIHByaW50Zigi5YWo5L2T44Gu5bmz5Z2H54K5OiAlLjJmXG4iLCBhdmVyYWdlKCkpOwogICAgcHJpbnRmKCI2MOeCueS7peS4ijEwMOeCueS7peS4i+OBruW5s+Wdh+eCuTogJS4yZlxuIiwgY29uZF9hdmVyYWdlKDYwLCAxMDApKTsKCiAgICByZXR1cm4gMDsKfQ==