输入n个学生数据记录(姓名、学号,5门课成绩)算出总分并且进行排序,按总分最后从高到低输出这些数据。
时间: 2023-05-22 07:01:38 浏览: 356
好的,这是一个非常典型的排序问题,可以使用冒泡排序、选择排序、插入排序等算法来解决。以下是一个使用冒泡排序的示例代码:
```python
n = int(input("请输入学生人数:"))
students = []
for i in range(n):
name = input("请输入第{}个学生的姓名:".format(i+1))
id = input("请输入第{}个学生的学号:".format(i+1))
scores = input("请输入第{}个学生的5门课成绩(用空格分隔):".format(i+1)).split()
scores = [int(score) for score in scores]
total_score = sum(scores)
students.append((name, id, scores, total_score))
# 冒泡排序
for i in range(n):
for j in range(n-i-1):
if students[j][3] < students[j+1][3]:
students[j], students[j+1] = students[j+1], students[j]
# 输出结果
print("按总分从高到低排序的学生数据如下:")
for i, student in enumerate(students):
print("第{}名学生:姓名:{},学号:{},总分:{}".format(i+1, student[0], student[1], student[3]))
```
这段代码可以让用户输入学生数据,然后计算总分并进行排序,最后按照总分从高到低输出结果。