#include <stdio.h>
int main(void) {
typedef struct person {
int no;
char name[20];
int en;
int math;
int n_lang;
int sum;
double ave;
} person_t;
person_t member[30], tmp;
int i = 0, j, n = 0, cnt = 0, entotal = 0, mathtotal = 0, n_langtotal = 0,
total = 0;
double avetotal = 0, enave, mathave, n_langave, totalave, aveave;
FILE *fp;
fp = fopen("seiseki.dat", "r");
while ((fscanf(fp, "%d%s%d%d%d", &member[i].no, member[i].name,
&member[i].en, &member[i].math, &member[i].n_lang)) != EOF) {
i++;
}
n = i;
for (i = 0; i < n; i++) {
member[i].sum = member[i].en + member[i].math + member[i].n_lang;
member[i].ave = (double) member[i].sum / 3;
entotal += member[i].en;
mathtotal += member[i].math;
n_langtotal += member[i].n_lang;
avetotal += member[i].ave;
}
total += entotal + mathtotal + n_langtotal;
enave = (double) entotal / n;
mathave = (double) mathtotal / n;
n_langave = (double) n_langtotal / n;
totalave = (double) total / n;
aveave = (double) avetotal / n;
printf("\n***成績一覧表***\n");
printf("番号 氏名 英語 数学 国語 合計 平均\n");
for (i = 0; i < n; i++) {
printf("%-4d%12s%5d%5d%5d%5d%5.1f\n", member[i].no, member[i].name,
member[i].en, member[i].math, member[i].n_lang, member[i].sum,
member[i].ave);
}
printf("平均 %6.1f%6.1f%6.1f%8.1f%6.1f", enave, mathave, n_langave, totalave,
aveave);
fclose(fp);
}