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