PAT甲级目录 | PAT乙级目录

题目描述

读入 $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++)>

代码示例:

01-26 13:57