N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:求出平均分,由函数值返回。
时间: 2023-03-22 22:03:37 浏览: 137
python 输入学生考试成绩计算平均分 示例
5星 · 资源好评率100%
好的,以下是一个可能的实现,其中假设每个学生都有一个唯一的学生ID:
```python
def fun(N, grades):
# 初始化一个字典,用于记录每个成绩对应的学生ID列表
grade_dict = {}
for i in range(N):
# 将当前成绩添加到字典中对应的学生ID列表中
if grades[i] in grade_dict:
grade_dict[grades[i]].append(i+1)
else:
grade_dict[grades[i]] = [i+1]
# 计算所有成绩的平均值
total_grade = sum(grades)
average_grade = total_grade / N
# 找到最高分对应的学生ID
max_grade = max(grades)
max_grade_ids = grade_dict[max_grade]
# 找到最低分对应的学生ID
min_grade = min(grades)
min_grade_ids = grade_dict[min_grade]
# 返回结果,包括平均分、最高分对应的学生ID、最低分对应的学生ID
return (average_grade, max_grade_ids[0], min_grade_ids[0])
```
在这个函数中,我们首先使用一个字典来记录每个成绩对应的学生ID列表。接下来,我们计算所有成绩的平均值,并找到最高分和最低分对应的学生ID。最后,我们返回一个元组,其中包括平均分、最高分对应的学生ID和最低分对应的学生ID。
注意,我们假设最高分和最低分都只有一个对应的学生ID。如果有多个学生获得了相同的最高分或最低分,则只返回其中一个学生的ID。如果需要返回所有学生的ID,则需要对这个函数进行修改。
阅读全文