题目内容:
输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。
输入格式:
第一行输入一个正整数N(N <= 100),表示学生人数。接着输入N行,每行格式如下: 分数 姓名 分数是一个非负整数,且小于等于100; 姓名为一个连续的字符串,中间没有空格,长度不超过20。
输出格式:
输出最高分数的学生姓名。每行包含一个姓名
输入样例:
5 87 lilei 99 hanmeimei 97 lily 99 lucy 77 jim
输出样例:
hanmeimei lucy
#include <stdio.h>
#define N 100
struct Student
{
char name[20];
int grade;
};
int main()
{
strcuct Student students[N];
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
struct Student s;
scanf("%d%s", &s.grade, s.name);
students[i] = s;
}
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (students[j].grade > students[i].grade)
{
struct Student s = students[i];
students[i] = students[j];
students[j] = s;
}
}
}
int i = 0;
do
{
printf("%s\n", students[i].name);
i++;
} while (students[i].grade == students[0].grade);
return 0;
}