已知某个班级有45人,统计每个学生的成绩,考试科目有:语文、英语、数学、物理、化学、生物,求取总分和平均分,并对学生成绩进行排序。
时间: 2023-10-20 14:21:45 浏览: 191
好的,这个问题可以用Python语言来解决。代码如下:
```python
# 定义学生成绩字典
scores = {}
# 输入每个学生的成绩
for i in range(45):
name = input("请输入第{}个学生的姓名:".format(i+1))
score = input("请输入{}的成绩,以空格分隔:".format(name))
score_list = score.split()
# 将成绩转换为整型
score_list = [int(s) for s in score_list]
scores[name] = score_list
# 计算总分和平均分
total_scores = {}
average_scores = {}
for name, score_list in scores.items():
total_scores[name] = sum(score_list)
average_scores[name] = sum(score_list) / len(score_list)
# 排序
sorted_scores = sorted(total_scores.items(), key=lambda x: x[1], reverse=True)
# 输出结果
print("学生总分排名:")
for i, (name, total_score) in enumerate(sorted_scores):
print("第{}名:{},总分:{}".format(i+1, name, total_score))
print("学生成绩:")
for name, score_list in scores.items():
print("{}的成绩:{}".format(name, score_list))
print("学生平均分排名:")
sorted_average_scores = sorted(average_scores.items(), key=lambda x: x[1], reverse=True)
for i, (name, average_score) in enumerate(sorted_average_scores):
print("第{}名:{},平均分:{:.2f}".format(i+1, name, average_score))
```
运行代码后,会提示您输入每个学生的姓名和成绩,然后会计算出每个学生的总分和平均分,并且对学生成绩进行排序。最后输出结果如下:
```
学生总分排名:
第1名:张三,总分:360
第2名:李四,总分:350
第3名:王五,总分:340
学生成绩:
张三的成绩:[90, 80, 70, 60, 40, 20]
李四的成绩:[85, 75, 65, 55, 45, 25]
王五的成绩:[80, 70, 60, 50, 60, 20]
学生平均分排名:
第1名:张三,平均分:60.00
第2名:李四,平均分:58.33
第3名:王五,平均分:56.67
```
其中,学生的成绩按照输入顺序输出,总分和平均分排名按照分数高低进行排序。
阅读全文