读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
1004 成绩排名 (20)
项目 |
要求 |
时间限制 |
400 ms |
内存限制 |
65536 kB |
代码长度限制 |
8000 B |
判题程序 |
Standard |
作者 |
CHEN, Yue |
题目
读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式:
每个测试输入包含1个测试用例,格式为
第1行:正整数n
第2行:第1个学生的姓名 学号 成绩
第3行:第2个学生的姓名 学号 成绩
... ... ...
第n+1行:第n个学生的姓名 学号 成绩
其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式:
对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。
输入样例:
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
输出样例:
Mike CS991301
Joe Math990112
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #include<stdio.h> #include<string.h>
int main(){ char name[10]; char student_id[10]; char name_max[10]; char name_min[10]; char student_id_min[10]; char student_id_max[10]; int score; int score_max; int score_min; int n; scanf("%d", &n); scanf("%s %s %d", &name, &student_id, &score); score_max = score_min = score; strcpy(name_max, name); strcpy(name_min, name); strcpy(student_id_max, student_id); strcpy(student_id_min, student_id); for (n=n; n>1; n--) { scanf("%s %s %d", &name, &student_id, &score); if (score > score_max) { score_max = score; strcpy(name_max, name); strcpy(student_id_max, student_id); } if (score < score_min) { score_min = score; strcpy(name_min, name); strcpy(student_id_min, student_id); } } printf("%s %s\n%s %s", name_max, student_id_max, name_min, student_id_min); return 0; }
|