4.编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n 小于50,学号小于10位。
时间: 2024-05-01 07:17:34 浏览: 9
好的,这是一道经典的排序问题,可以使用冒泡排序、快速排序等不同的算法实现,以下是一种冒泡排序的实现方式:
```python
n = int(input("请输入学生的数量:"))
students = []
for i in range(n):
info = input("请输入学号和成绩,中间用空格隔开:").split()
students.append((info[0], float(info[1])))
# 冒泡排序
length = len(students)
for i in range(length):
for j in range(length - i - 1):
if students[j][1] < students[j + 1][1]:
students[j], students[j + 1] = students[j + 1], students[j]
# 输出结果
for student in students:
print(student[0], student[1])
```
以上代码中,我们首先读入学生数量以及每个学生的信息,将学生的信息存储在一个列表中。然后使用冒泡排序的方法,对学生信息按照成绩从高到低进行排序。最后按照顺序输出排序后的学生信息。
相关问题
4. 编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n小于50,学号小于10位。
以下是一个简单的 Python 程序,使用列表和 lambda 函数实现按成绩从高到低排序输出:
```python
n = int(input("请输入学生数:"))
students = []
for i in range(n):
sid, score = input("请输入学号和成绩(以空格分隔):").split()
students.append((sid, float(score)))
students.sort(key=lambda x: x[1], reverse=True)
print("按成绩从高到低排序输出:")
for sid, score in students:
print(sid, score)
```
程序首先输入学生数 `n`,然后通过循环输入每个学生的学号和成绩,并将其存储在一个列表 `students` 中。接着使用 `sort()` 方法和一个 lambda 函数对列表进行排序,按照成绩从高到低排序。最后遍历排序后的列表,输出学号和成绩。
4.编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n 小于50,学号小于10位。
以下是Python的代码实现:
```python
n = int(input("请输入学生人数:"))
stu_dict = {}
for i in range(n):
stu_info = input("请输入第{}个学生的学号和成绩(以空格分隔):".format(i+1))
stu_id, stu_score = stu_info.split()
stu_dict[stu_id] = float(stu_score)
sorted_stu = sorted(stu_dict.items(), key=lambda x: x[1], reverse=True)
print("按成绩从高到低排序输出:")
for stu in sorted_stu:
print(stu[0], stu[1])
```
首先,我们输入学生人数 `n`;然后使用一个字典 `stu_dict` 存储学号和成绩。接下来,通过循环输入每个学生的学号和成绩,并将其添加到 `stu_dict` 中。
使用 Python 内置的 `sorted()` 函数进行按成绩从高到低排序,排序的关键字为字典中的值(即学生的成绩),并使用 `reverse=True` 参数指定降序排列。
最后,遍历排序后的列表,输出学生的学号和成绩。