计算每个学生的平均分;计算每门课的平均分;找出50个分数中最高的分数所对应的学生和课程;
时间: 2023-05-04 11:01:41 浏览: 132
每个学生的平均分可以通过所有学生总分除以总学生数来计算;每门课的平均分可以通过所有学生在该门课的总分除以选课学生数来计算。要找出50个分数中最高的分数,可以将这些分数从大到小排序,然后取第一个数即可找到最高分数对应的学生和课程。
相关问题
输入10个学生5门课的成绩,分别用函数实现下列功能: ①计算每个学生平均分; ②计算每门课的平均分; ③找出所有50个分数中最高的分数所对应的学生和课程
以下是实现上述功能的 Python 代码:
```python
# 读入10个学生5门课的成绩
scores = [[0] * 5 for i in range(10)]
for i in range(10):
print("请输入第%d个学生的成绩:" % (i + 1))
for j in range(5):
scores[i][j] = int(input("第%d门课的成绩:" % (j + 1)))
# 计算每个学生平均分
def student_average(scores):
averages = []
for i in range(len(scores)):
average = sum(scores[i]) / len(scores[i])
averages.append(average)
print("第%d个学生的平均分为%.2f" % (i + 1, average))
return averages
# 计算每门课的平均分
def course_average(scores):
averages = []
for j in range(len(scores[0])):
total = 0
for i in range(len(scores)):
total += scores[i][j]
average = total / len(scores)
averages.append(average)
print("第%d门课的平均分为%.2f" % (j + 1, average))
return averages
# 找出最高分数所对应的学生和课程
def find_highest(scores):
max_score = max(max(scores))
for i in range(len(scores)):
for j in range(len(scores[0])):
if scores[i][j] == max_score:
print("最高分数为%d,对应的学生为%d,课程为%d" % (max_score, i + 1, j + 1))
# 调用函数计算平均分和最高分数
student_averages = student_average(scores)
course_averages = course_average(scores)
find_highest(scores)
```
运行代码后,可以依次输入每个学生5门课的成绩,然后会分别计算每个学生的平均分、每门课的平均分以及最高分数所对应的学生和课程,并输出结果。
输入10个学生5门课的成绩,分别用函数实现下列功能: ①计算每个学生平均分; ②计算每门课的平均分; ③找出所有50个分数中最高的分数所对应的学生和课程
以下是实现上述功能的代码:
```python
# 定义成绩列表
scores = []
for i in range(10):
score = []
for j in range(5):
s = float(input('请输入第{}个学生的第{}门课的成绩:'.format(i+1, j+1)))
score.append(s)
scores.append(score)
# 计算每个学生平均分
def avg_score_student(scores):
avg_list = []
for i in range(len(scores)):
avg = sum(scores[i]) / len(scores[i])
avg_list.append(avg)
print('第{}个学生的平均分为:{}'.format(i+1, avg))
return avg_list
# 计算每门课的平均分
def avg_score_course(scores):
avg_list = []
for j in range(len(scores[0])):
s = 0
for i in range(len(scores)):
s += scores[i][j]
avg = s / len(scores)
avg_list.append(avg)
print('第{}门课的平均分为:{}'.format(j+1, avg))
return avg_list
# 找出所有50个分数中最高的分数所对应的学生和课程
def find_highest_score(scores):
max_score = 0
max_student = 0
max_course = 0
for i in range(len(scores)):
for j in range(len(scores[i])):
if scores[i][j] > max_score:
max_score = scores[i][j]
max_student = i+1
max_course = j+1
print('最高分数为{},对应第{}个学生的第{}门课'.format(max_score, max_student, max_course))
# 调用函数
avg_score_student(scores)
avg_score_course(scores)
find_highest_score(scores)
```
假设输入的成绩为:
```
90 80 70 60 50
80 70 60 50 40
70 60 50 40 30
60 50 40 30 20
50 40 30 20 10
90 80 70 60 50
80 70 60 50 40
70 60 50 40 30
60 50 40 30 20
50 40 30 20 10
```
则输出结果为:
```
第1个学生的平均分为:70.0
第2个学生的平均分为:50.0
第3个学生的平均分为:40.0
第4个学生的平均分为:30.0
第5个学生的平均分为:20.0
第6个学生的平均分为:70.0
第7个学生的平均分为:50.0
第8个学生的平均分为:40.0
第9个学生的平均分为:30.0
第10个学生的平均分为:20.0
第1门课的平均分为:70.0
第2门课的平均分为:60.0
第3门课的平均分为:50.0
第4门课的平均分为:40.0
第5门课的平均分为:30.0
最高分数为90.0,对应第1个学生的第1门课
```
阅读全文