首页 > 试题广场 >

成绩排序

[编程题]成绩排序
  • 热度指数:233873 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给出的 n 条姓名和成绩信息,根据指定的排序方式按成绩升序或降序排列并输出。
\hspace{15pt}特别的,成绩相同的同学需要保持输入的先后顺序进行排序。可能存在多条信息的学生姓名一致。

输入描述:
\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 200\right) 代表学生人数。
\hspace{15pt}第二行输入一个整数 op \left(0 \leqq op \leqq 1\right) 代表排序方式,其中,0 表示按成绩降序,1 表示按成绩升序。
\hspace{15pt}此后 n 行,第 i 行依次输入:
\hspace{23pt}\bullet\,一个长度为 1 \leqq {\rm len}(s_i) \leqq 20、由大小写字母构成的字符串 s_i 代表第 i 个学生的姓名;
\hspace{23pt}\bullet\,一个整数 a_i \left(0 \leqq a_i \leqq 100\right) 代表这个学生的成绩。


输出描述:
\hspace{15pt}根据输入的排序方式,按照成绩升序或降序输出所有学生的姓名和成绩。对于每一名学生,新起一行。输出学生的姓名和成绩,用空格分隔。
示例1

输入

3
0
fang 90
yang 50
ning 70

输出

fang 90
ning 70
yang 50

说明

\hspace{15pt}在这个样例中,op = 0,因此按成绩降序排序。
示例2

输入

4
1
fang 90
yang 50
ning 70
yang 70

输出

yang 50
ning 70
yang 70
fang 90

说明

\hspace{15pt}在这个样例中,op = 1,因此按成绩升序排序。

备注:
本题已于下方时间节点更新,请注意题解时效性:
1. 2025-05-16 更新题面。
2. 2025-01-09 更新题面。

这道题你会答吗?花几分钟告诉大家答案吧!