输入n名学生(不超过100名)的姓名、学号和体能总成绩(假定输入成绩都是正确的),输出比平均分第一和第二的学生姓名(长度不超过9个字符)、学号和成绩。
时间: 2023-06-20 07:09:35 浏览: 241
好的,这是一个简单的Python实现:
```python
n = int(input("请输入学生人数:"))
students = []
total_score = 0
# 输入学生信息并计算总成绩
for i in range(n):
name = input("请输入第{}名学生的姓名:".format(i+1))
student_id = input("请输入第{}名学生的学号:".format(i+1))
score = int(input("请输入第{}名学生的体能总成绩:".format(i+1)))
students.append((name, student_id, score))
total_score += score
# 计算平均分
average_score = total_score / n
# 找出比平均分高的学生并排序
above_average_students = [s for s in students if s[2] > average_score]
above_average_students.sort(key=lambda x: x[2], reverse=True)
# 输出比平均分第一和第二的学生信息
if len(above_average_students) >= 2:
print("比平均分第一和第二的学生姓名、学号和成绩分别是:")
print(above_average_students[0][0], above_average_students[0][1], above_average_students[0][2])
print(above_average_students[1][0], above_average_students[1][1], above_average_students[1][2])
elif len(above_average_students) == 1:
print("只有一名学生考了比平均分高,他/她的姓名、学号和成绩分别是:")
print(above_average_students[0][0], above_average_students[0][1], above_average_students[0][2])
else:
print("没有学生考了比平均分高")
```
以上代码会先让用户输入学生信息,然后计算总成绩和平均分,接着筛选出比平均分高的学生并排序,最后输出比平均分第一和第二的学生信息。如果没有学生考了比平均分高,则输出相应提示。