输入全班30个学生每人6门功课的成绩,计算个人平均成绩,并按名次排序输出
时间: 2023-12-26 20:04:33 浏览: 364
好的,这个问题需要进行一些数据处理和排序操作,我可以帮你完成。请将每个学生的成绩按照以下格式输入:每行包含一个学生的姓名和6门功课的成绩,用空格隔开,例如:
```
张三 80 90 75 88 92 85
李四 70 85 90 78 68 72
...
```
接下来,我会对输入的数据进行处理并输出每个学生的平均成绩和按照平均成绩排序后的名次。代码如下:
```python
# 获取输入数据
scores = []
while True:
try:
line = input().strip()
if not line:
break
items = line.split()
name, grades = items[0], [int(x) for x in items[1:]]
scores.append((name, grades))
except:
break
# 计算平均成绩
avg_scores = []
for name, grades in scores:
avg_score = sum(grades) / len(grades)
avg_scores.append((name, avg_score))
# 按平均成绩排序并输出名次
rank = sorted(avg_scores, key=lambda x: x[1], reverse=True)
for i, (name, avg_score) in enumerate(rank):
print(f"{i+1}. {name} {avg_score:.2f}")
```
你可以将每位学生的成绩依次输入,然后按下回车键结束输入。程序会自动计算每个学生的平均成绩并按照平均成绩排序后输出名次。注意,代码中最后一行的输出格式可能需要根据实际需要进行修改。
阅读全文