PAT乙1004 成绩排名

题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805321640296448

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:

每个测试输入包含 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 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 struct student
 5 {
 6     char name[10 + 5];
 7     char sno[10 + 5];
 8     int score;
 9 } stu[1000 + 50];
10 int main()
11 {
12     int n, maxs = -1, mins = 101, maxp = -1, minp = -1;
13     scanf("%d", &n);
14     for (int i = 0; i < n; i++)
15     {
16         cin >> stu[i].name >> stu[i].sno >> stu[i].score;
17         if (stu[i].score > maxs)
18             maxs = stu[i].score, maxp = i;
19         if (stu[i].score < mins)
20             mins = stu[i].score, minp = i;
21     }
22     printf("%s %s\n%s %s\n", stu[maxp].name, stu[maxp].sno, stu[minp].name, stu[minp].sno);
23     return 0;
24 }

 

posted @ 2020-04-25 11:00  sqdtss  阅读(112)  评论(0编辑  收藏  举报