/* a10-4-2.c */
#include <stdio.h>
#define N 5
#define K 5

typedef struct {    /* 成績構造体 */
	int no;           /* 学生番号   */
	char name[20];    /* 氏名       */
	int ten[K];       /* 点数（国語・数学・理科・社会・英語）*/
} Test_record;

int max_test(const Test_record *s, int subject, int n);

int main(void)
{
	Test_record student[N] = 
	{{1, "安部寛之", 76, 82, 87, 93, 88},
	 {2, "内山理香", 54, 66, 71, 64, 76},
	 {3, "小田裕一", 93, 45, 63, 97, 96},
	 {4, "後藤美希", 81, 88, 72, 84, 78},
	 {5, "柴崎ユウ", 58, 61, 77, 56, 88}};

	printf("数学の最高点数は%d点です。\n", max_test(student, 1, N));

	return 0;
}

/*** 合計点数を返却する ***/
/* （仮引数）s：成績構造体へのポインタ　subject：科目　n：人数
 　（返却値）最高点数 */
int max_test(const Test_record *s, int subject, int n)
{
	int i, max;

	max = s->ten[subject];

	for (i = 1; i < n; i++) {
		if (max < (s+i)->ten[subject]) {
			max = (s+i)->ten[subject];
		}
	}

	return max;
}
