#include struct test { char name[20]; int A; int B; int C; int D; int E; int gokei; }; int input_test1(struct test *data); void gokei_test1(int num, struct test *data); void heikin_test1(int num, struct test *data); int main(void) { int num; struct test data[100]; num = input_test1(data); gokei_test1(num, data); heikin_test1(num, data); return 0; } int input_test1(struct test *data) { int i , num = 0; printf("テストのデータを入力してください\n"); while ( i < 100 ) { printf("名前を入力してください"); scanf("%s", data->name); if ( (data->name[0]) == 'Q') break; /*名前の代わりにQを入力するとループ終了*/ printf("科目Aの点数を入力してください"); scanf("%d", &data->A); printf("科目Bを入力してください"); scanf("%d", &data->B); printf("科目Cの点数を入力してください"); scanf("%d", &data->C); printf("科目Dの点数を入力してください"); scanf("%d", &data->D); printf("科目Eの点数を入力してください"); scanf("%d", &data->E); data++;num++; } return num; /*入力したデータの数*/ } /*個人の5科目の合計点と平均点を計算する*/ void gokei_test1(int num, struct test *data) { int i; float average = 0.0; for ( i = 0; i< num; i++ ) { data->gokei = data->A + data->B + data->C + data->D + data->E; average = data->gokei / 5; printf("%s の合計点は %d 点\n" , data->name, data->gokei); printf("%s の平均点は %6.2f点\n" , data->name, average); data++; } } /*全体で5科目の平均点を計算する*/ void heikin_test1(int num, struct test *data) { float a = 0.0, b = 0.0, c = 0.0, d = 0.0, e = 0.0; int i; for ( i = 0; i < num; i++ ) { a = a + data->A; b = b + data->B; c = c + data->C; d = d + data->D; e = e + data->E; data++; } a = a / num; b = b / num; c = c / num; d = d / num; e = e / num; printf("科目Aの平均点は %6.2f点\n", a); printf("科目Bの平均点は %6.2f点\n", b); printf("科目Cの平均点は %6.2f点\n", c); printf("科目Dの平均点は %6.2f点\n", d); printf("科目Eの平均点は %6.2f点\n", e); }