#include <stdio.h>
#include <stdlib.h>

int main(){
	
	typedef struct Seiseki{
		int eigo;
		int kokugo;
		int sugaku;
		float average;/*平均値*/
	} SEISEKI;
	
	int datanum,i;
	SEISEKI *h_start; /* datanum 個の SEISEKI 構造体の先頭を指すポインタ*/
	SEISEKI *hp;
	
	printf("人数を入力してください。\n");
	scanf("%d",&datanum);
	
	h_start = (SEISEKI*)malloc(sizeof(SEISEKI)*datanum);
	
	/* 英語と国語と数学の点数を DATANUM 個読み込み、3科目の平均値を計算する */
	/* (ポインタとしてアクセス) */
	for (i=0,hp=h_start;i<datanum;i++,hp++){
		scanf("%d",&(hp->eigo));
		scanf("%d",&(hp->kokugo));
		scanf("%d",&(hp->sugaku));
		hp->average = ((hp->eigo) +(hp->kokugo) + (hp->sugaku))/3;
	}
	
	/* 3科目の平均値を表示する */
	/* (配列としてアクセス) */
	for (i=0;i<datanum;i++){
		printf("%d 番目の人の 3 科目の平均値は%3.1f です。\n",i+1,h_start[i].average);
	}
	
	/*英語と国語と数学の平均値をそれぞれ表示する*/
	float eigosum=0;
	float kokugosum=0;
	float sugakusum=0;
	
	for (i=0;i<datanum;i++){
		eigosum+=h_start[i].eigo;
		kokugosum+=h_start[i].kokugo;
		sugakusum+=h_start[i].sugaku;
	}
	
	printf("英語の平均点は %3.1f 点です。\n", eigosum / datanum);
	printf("国語の平均点は %3.1f 点です。\n", kokugosum / datanum);
	
	
	
	printf("数学の平均点は %3.1f 点です。\n", sugakusum / datanum);
}
	