题目描述:给定n(1≤n≤100)个学生的姓名和成绩,按照成绩从高到低排序输出。学生的姓名不会重复?

题目描述:给定n(1≤n≤100)个学生的姓名和成绩,按照成绩从高到低排序输出。学生的姓名不会重复,如果有成绩相同的,则原来在名单中靠前的同学仍然排列在前面。
例如有一个班的成绩如下:
Deirdr 89
Sheil 50
Cynthi 63
Rene 66
Emm 46
Myrn 42
Nicol 63
Prudenc 66
Adel 79
排序之后为:
Deirdr 89
Adel 79
Rene 66
Prudenc 66
Cynthi 63
Nicol 63
Sheil 50
Emm 46
Myrn 42
注意:Rene排在Prudenc之前,Cynthi排在Nicol之前。
提示
输入输出格式
输入格式
第一行是一个整型数n,表示后面有n个学生的数据。从第二行到第n+1行,每行表示一个学生的数据,第一列是学生的姓名,第二列是学生的成绩(都是100以内的正整数),中间以空格分隔
输出格式
排序得到的结果,每行一个学生的数据,第一列是姓名,第二列是他的成绩,中间以空格分隔。
输入输出样例
输入
7
Aaro 100
Colto 65
Chas 83
Ada 60
Josia 94
Zavie 100
Dieg 81
输出
Aaro 100
Zavie 100
Josia 94
Chas 83
Dieg 81
Colto 65
Ada 60

可以使用排序算法对学生的成绩进行排序,然后按照排好序的顺序输出学生的姓名和成绩。下面是一种可能的实现方法,使用Python语言编写:
```python
# 输入学生数量
n = int(input("请输入学生的数量:"))
# 创建一个空列表,用于存储学生的姓名和成绩
students = []
# 输入学生的姓名和成绩,并将其添加到列表中
for i in range(n):
name = input("请输入第{}个学生的姓名:".format(i + 1))
score = int(input("请输入第{}个学生的成绩:".format(i + 1)))
students.append((name, score))
# 使用排序算法对学生列表进行排序,按照成绩从高到低排序
students.sort(key=lambda x: x[1], reverse=True)
# 输出排序后的学生姓名和成绩
print("按成绩从高到低排序的学生列表:")
for student in students:
print("姓名:{},成绩:{}".format(student[0], student[1]))
```
这段代码首先会要求输入学生的数量,然后依次输入每个学生的姓名和成绩。接下来,使用sort()函数对学生列表进行排序,按照成绩从高到低进行排序。最后,通过循环遍历学生列表,并按照要求输出学生的姓名和成绩。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜