#include <stdio.h>
typedef struct {
int id;
int english;
char grade; // 「class」は予約語に近いため「grade」に変更し、文字型(char)にしました
} Student;
// プロトタイプ宣言(引数はポインタ、人数も渡すと安全です)
void classify(Student *data, int count);
int main(void) {
// 1. 配列の宣言(*を外しました)
// 初期値の {id, english} の後ろに、grade用の初期値(' 'など)を入れます
Student data[] = {
{1, 60, ' '}, {2, 80, ' '}, {3, 90, ' '}, {4, 70, ' '}, {5, 50, ' '}
}; // 初期値の {id, english} の後ろに、grade用の初期値(' ')なくても行ける
int num = 5; // 生徒の人数
// 2. 判定関数を呼び出す(これがないと実行されません)
classify(data, num);
for (int i = 0; i < num; i++) {
// 文字を表示するときは %c を使います
printf("id:%d, score:%3d, class:%c\n", data
[i
].
id, data
[i
].
english, data
[i
].
grade); }
return 0;
}
void classify(Student *data, int count) {
for (int i = 0; i < count; i++) {
if (data[i].english >= 80) {
data[i].grade = 'A';
} else if (data[i].english >= 70) {
data[i].grade = 'B';
} else if (data[i].english >= 60) {
data[i].grade = 'C';
} else
data[i].grade = 'D';
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgaWQ7CiAgICBpbnQgZW5nbGlzaDsKICAgIGNoYXIgZ3JhZGU7IC8vIOOAjGNsYXNz44CN44Gv5LqI57SE6Kqe44Gr6L+R44GE44Gf44KB44CMZ3JhZGXjgI3jgavlpInmm7TjgZfjgIHmloflrZflnosoY2hhcinjgavjgZfjgb7jgZfjgZ8KfSBTdHVkZW50OwoKLy8g44OX44Ot44OI44K/44Kk44OX5a6j6KiA77yI5byV5pWw44Gv44Od44Kk44Oz44K/44CB5Lq65pWw44KC5rih44GZ44Go5a6J5YWo44Gn44GZ77yJCnZvaWQgY2xhc3NpZnkoU3R1ZGVudCAqZGF0YSwgaW50IGNvdW50KTsKCmludCBtYWluKHZvaWQpIHsKICAgIC8vIDEuIOmFjeWIl+OBruWuo+iogO+8iCrjgpLlpJbjgZfjgb7jgZfjgZ/vvIkKICAgIC8vIOWIneacn+WApOOBriB7aWQsIGVuZ2xpc2h9IOOBruW+jOOCjeOBq+OAgWdyYWRl55So44Gu5Yid5pyf5YCk77yIJyAn44Gq44Gp77yJ44KS5YWl44KM44G+44GZCiAgICBTdHVkZW50IGRhdGFbXSA9IHsKICAgICAgICB7MSwgNjAsICcgJ30sIHsyLCA4MCwgJyAnfSwgezMsIDkwLCAnICd9LCB7NCwgNzAsICcgJ30sIHs1LCA1MCwgJyAnfQogICAgfTsgLy8g5Yid5pyf5YCk44GuIHtpZCwgZW5nbGlzaH0g44Gu5b6M44KN44Gr44CBZ3JhZGXnlKjjga7liJ3mnJ/lgKQoJyAnKeOBquOBj+OBpuOCguihjOOBkeOCiwogICAgaW50IG51bSA9IDU7IC8vIOeUn+W+kuOBruS6uuaVsAoKICAgIC8vIDIuIOWIpOWumumWouaVsOOCkuWRvOOBs+WHuuOBme+8iOOBk+OCjOOBjOOBquOBhOOBqOWun+ihjOOBleOCjOOBvuOBm+OCk++8iQogICAgY2xhc3NpZnkoZGF0YSwgbnVtKTsKCiAgICBwcmludGYoIi0tLSDliKTlrprntZDmnpwgLS0tXG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKICAgICAgICAvLyDmloflrZfjgpLooajnpLrjgZnjgovjgajjgY3jga8gJWMg44KS5L2/44GE44G+44GZCiAgICAgICAgcHJpbnRmKCJpZDolZCwgc2NvcmU6JTNkLCBjbGFzczolY1xuIiwgZGF0YVtpXS5pZCwgZGF0YVtpXS5lbmdsaXNoLCBkYXRhW2ldLmdyYWRlKTsKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0KCnZvaWQgY2xhc3NpZnkoU3R1ZGVudCAqZGF0YSwgaW50IGNvdW50KSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKICAgICAgICBpZiAoZGF0YVtpXS5lbmdsaXNoID49IDgwKSB7CiAgICAgICAgICAgIGRhdGFbaV0uZ3JhZGUgPSAnQSc7IAogICAgICAgIH0gZWxzZSBpZiAoZGF0YVtpXS5lbmdsaXNoID49IDcwKSB7CiAgICAgICAgICAgIGRhdGFbaV0uZ3JhZGUgPSAnQic7CiAgICAgICAgfSBlbHNlIGlmIChkYXRhW2ldLmVuZ2xpc2ggPj0gNjApIHsKICAgICAgICAgICAgZGF0YVtpXS5ncmFkZSA9ICdDJzsKICAgICAgICB9IGVsc2UKICAgICAgICAgICAgZGF0YVtpXS5ncmFkZSA9ICdEJzsKICAgIH0KfQ==
--- 判定結果 ---
id:1, score: 60, class:C
id:2, score: 80, class:A
id:3, score: 90, class:A
id:4, score: 70, class:B
id:5, score: 50, class:D