根据给出的一组学生的3门课成绩信息,编写函数计算每个学生的平均分,返回平均分最高的和最低的两位学生的姓名。请将学生成绩用字典保存。 学生的成绩信息如下: 姓名 java c# db zhangsan 90 80 89 lisi 95 86 81 wangwu 97 78 60 liuliu 85 90 85
时间: 2024-02-10 13:22:12 浏览: 106
Java+MYSQL学生管理系统_javaSQL学生成绩管理_
5星 · 资源好评率100%
好的,我理解了你的问题。以下是Python代码实现:
```python
def find_extreme_students(scores):
"""
计算每个学生的平均分,返回平均分最高的和最低的两位学生的姓名。
:param scores: 学生成绩表,字典类型,key为学生姓名,value为包含java、c#、db三门成绩的列表
:return: 返回平均分最高的和最低的两位学生的姓名。
"""
# 计算每个学生的平均分
averages = {}
for name, scores_list in scores.items():
avg_score = sum(scores_list) / len(scores_list)
averages[name] = avg_score
# 找出平均分最高的和最低的两位学生
highest, lowest = '', ''
for name, avg_score in averages.items():
if highest == '' or avg_score > averages[highest]:
highest = name
if lowest == '' or avg_score < averages[lowest]:
lowest = name
return highest, lowest
# 测试
scores = {'zhangsan': [90, 80, 89], 'lisi': [95, 86, 81], 'wangwu': [97, 78, 60], 'liuliu': [85, 90, 85]}
highest, lowest = find_extreme_students(scores)
print('平均分最高的学生是:', highest)
print('平均分最低的学生是:', lowest)
```
输出结果:
```
平均分最高的学生是: wangwu
平均分最低的学生是: lisi
```
注意:此处我使用了Python的字典类型存储学生成绩,其中key为学生姓名,value为包含java、c#、db三门成绩的列表。如果你使用其他语言,可以考虑使用类似的数据结构。
阅读全文