7-2 找出總分最高的學生 (15 分)

7-2 找出總分最高的學生 (15 分)

給定N個學生的基本信息,包括學號(由5個數字組成的字符串)、姓名(長度小於10的不包含空白字符的非空字符串)和3門課程的成績([0,100]區間內的整數),要求輸出總分最高學生的姓名、學號和總分。

輸入格式:

輸入在一行中給出正整數N(≤10)。隨後N行,每行給出一位學生的信息,格式爲“學號 姓名 成績1 成績2 成績3”,中間以空格分隔。

輸出格式:

在一行中輸出總分最高學生的姓名、學號和總分,間隔一個空格。題目保證這樣的學生是唯一的。

輸入樣例:

5
00001 huanglan 78 83 75
00002 wanghai 76 80 77
00003 shenqiang 87 83 76
10001 zhangfeng 92 88 78
21987 zhangmeng 80 82 75

輸出樣例:

zhangfeng 10001 258

代碼:


#include <stdio.h>
#include <string.h>
struct stu
{
	char nu[1000];
	char name[1000];
	int pr1;
	int pr2;
	int pr3;
};
int main() {
	struct stu stu1[1000];
	int N;
	scanf("%d", &N);
	int lo;
	for (int i = 0; i < N; i++)
	{
		scanf("%s %s %d %d %d", &stu1[i].nu, &stu1[i].name, &stu1[i].pr1, &stu1[i].pr2, &stu1[i].pr3);
	}
	int max = stu1[0].pr1 + stu1[0].pr2 + stu1[0].pr3;
	for (int i = 1; i < N; i++)
	{
		if (max < stu1[i].pr1 + stu1[i].pr2 + stu1[i].pr3)
		{
			max = stu1[i].pr1 + stu1[i].pr2 + stu1[i].pr3;
			lo = i;
		}
	}
	printf("%s %s %d", stu1[lo].name, stu1[lo].nu, max);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章