4. 编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n小于50,学号小于10位。
时间: 2023-12-10 13:40:12 浏览: 99
以下是一个简单的 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("请输入学生数:"))
# 初始化学生信息列表
students = []
# 输入学生信息
for i in range(n):
stu_info = input("请输入第{}个学生的学号和成绩(用空格隔开):".format(i+1))
stu_info_list = stu_info.split()
stu_num = stu_info_list[0]
stu_score = float(stu_info_list[1])
students.append({"num":stu_num, "score":stu_score})
# 按成绩从高到低排序
students_sorted = sorted(students, key=lambda x:x["score"], reverse=True)
# 输出排序后的学生信息
print("按成绩从高到低排序后的学生信息如下:")
for stu in students_sorted:
print("学号:{},成绩:{}".format(stu["num"], stu["score"]))
```
注意:本程序假设用户输入的学号和成绩是以空格隔开的,如果用户输入的格式不正确,程序会出错。如果需要做输入格式检查,可以自行添加相应的代码。
4.编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n 小于50,学号小于10位。
好的,这是一道经典的排序问题,可以使用冒泡排序、快速排序等不同的算法实现,以下是一种冒泡排序的实现方式:
```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])
```
以上代码中,我们首先读入学生数量以及每个学生的信息,将学生的信息存储在一个列表中。然后使用冒泡排序的方法,对学生信息按照成绩从高到低进行排序。最后按照顺序输出排序后的学生信息。
阅读全文