按要求完成下面任务程序的编写,调试和运行。 有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生的数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。 要求用一个input函数输入5 个学生数据,用一个average函数求总平均分,用max函数找出最高分学生数据,总平均分和最高分的学生的数据都在主函数中输出。
时间: 2023-12-15 21:21:08 浏览: 77
C语言程序设计-输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.
5星 · 资源好评率100%
以下是按照要求完成的程序:
```python
def input_data():
data = []
for i in range(5):
info = []
info.append(input('请输入学号:'))
info.append(input('请输入姓名:'))
info.append(float(input('请输入第一门课的成绩:')))
info.append(float(input('请输入第二门课的成绩:')))
info.append(float(input('请输入第三门课的成绩:')))
data.append(info)
return data
def average(data):
total = 0
for i in range(5):
total += sum(data[i][2:])
avg = total / (5 * 3)
return avg
def max_score(data):
max_student = []
max_score = -1
for i in range(5):
score = sum(data[i][2:])
if score > max_score:
max_score = score
max_student = data[i]
return max_student
if __name__ == '__main__':
data = input_data()
avg = average(data)
max_student = max_score(data)
print('3门课的总平均分数为:%.2f' % avg)
print('最高分的学生的数据为:')
print('学号:%s' % max_student[0])
print('姓名:%s' % max_student[1])
print('第一门课的成绩:%.2f' % max_student[2])
print('第二门课的成绩:%.2f' % max_student[3])
print('第三门课的成绩:%.2f' % max_student[4])
print('平均分数:%.2f' % (sum(max_student[2:]) / 3))
```
在这个程序中,我们首先定义了三个函数:`input_data()`用于从键盘输入学生数据,`average()`用于计算3门课的总平均分,`max_score()`用于找出最高分的学生数据。然后在主函数中调用这三个函数,并输出结果。
在`input_data()`函数中,我们使用了一个`for`循环语句,每次循环输入一个学生的数据,将其添加到`data`列表中,最后返回整个`data`列表。
在`average()`函数中,我们使用了一个`for`循环语句和一个`sum()`函数计算3门课的总分数,然后除以总的学生数和课程数得到总平均分。
在`max_score()`函数中,我们使用了一个`for`循环语句和一个`sum()`函数计算每个学生的总分数,然后找到最高分的学生数据,并将其返回。
最后,在主函数中我们先调用`input_data()`函数获取学生数据,然后调用`average()`函数计算总平均分,调用`max_score()`函数找到最高分学生数据,并输出结果。
阅读全文