#2075. 学生成绩分类和排序(难度电子学会T4)
学生成绩分类和排序(难度电子学会T4)
学生成绩分类和排序
输入一组学生的成绩信息(包括学生的学号和成绩),将成绩大于等于60的学生(及格生)按照成绩从高到低输出,成绩低于60的学生(不及格生)按照输入顺序输出。
输入格式:
- 第一行输入一个整数
n,表示学生的数量。 - 接下来的
n行每行输入一个字符串id(学生学号)和一个整数score(学生成绩)。
输出格式:
- 先按照成绩从高到低输出及格生的学号。
- 然后按输入顺序输出不及格生的学号
输入样例
5
001 85
002 55
003 90
004 60
005 50
输出样例
003
001
004
002
005
解题思路
- 定义数据结构:
- 使用结构体
Student存储每个学生的信息,包括id(学号)和score(成绩)。 - 使用两个数组
pass和fail分别存储成绩及格(大于等于60)和不及格(小于60)的学生信息。
- 使用结构体
- 输入数据和分类:
- 首先输入学生数量
n。 - 然后,通过循环读取每个学生的学号和成绩,判断其是否及格,将信息分类存储到相应的数组中。
- 首先输入学生数量
- 排序和输出:
- 使用
stable_sort对及格学生数组pass按照成绩从高到低排序。 - 按顺序输出
pass数组中的学生信息。 - 按输入顺序输出
fail数组中的学生信息。 解释:
- 使用
003和001是成绩最高的学生,按降序排序。004恰好 60 分,按输入顺序排序。002和005不及格,按输入顺序输出