题目描述
读入 $n(>0)$名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式:
每个测试输入包含 1 个测试用例,格式为
其中 姓名 和 学号 均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式:
对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。
输入样例:
输出样例:
易错点:
- 实际上正确的字符串等价于: (‘P’左边’A’的个数) * (中间’A’的个数) = ‘T’右边’A’的个数
- 中间’A’的个数不少于一个
- ‘P’和’T’分别只能出现一次
也许陌生的知识点
stu(){}
- 结构体中加上这句后,可以无需声明直接定义一个新的变量
stu(string _name, string _id, int _score):name(_name), id(_id), score(_score){}
- 实现直接用指定参数定义结构体变量
bool cmp(stu a, stu b){}
- 比较函数,可以自定义 sort 时的排序策略
- 本题中该函数实现按关键字 score 对数组从大到小排序
sort(S, S + n, cmp);
- 排序函数,实现 [first, last) 范围内的排序,可以自定义排序策略 cmp 函数
- 不带 cmp 参数的 sort 函数实现从小到大排序
- 所需头文件: algorithm大专栏 PAT B1004 成绩排名(C++)>