#include struct gstudent { int id; double report; double exam; }; void descriminate3(struct gstudent *p) { if (p->id % 3 ==0) { p->report *= 1.4; } } int main(void) { int i; struct gstudent data[] = { { 1, 19.0, 64.5 }, { 2, 21.0, 68.0 }, { 3, 18.0, 42.5 }, { 4, 15.5, 37.5 }, { 5, 17.0, 62.5 }, { 6, 18.5, 65.0 }, { 7, 16.5, 42.5 }, { 8, 6.5, 21.5 }, { 9, 20.0, 67.5 }, { 10, 12.0, 29.0 }, { 11, 14.5, 38.5 }, { 12, 17.5, 58.0 }, { -1, 0, 0 } }; for (i=0; data[i].id >= 0; i++) { descriminate3(&data[i]); } for (i=0; data[i].id >= 0; i++) { printf("学籍番号: %03d、レポート: %6.2f 点、テスト: %6.2f 点、計: %6.2f 点\n", data[i].id, data[i].report, data[i].exam, data[i].report + data[i].exam); } return 0; }