有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。 输入格式: 输入共10行,每行依次输入每个学生数据,包括学号、姓名、3门课程的成绩。 输出格式: 输出共三行,第一行是3门课的总平均分(格式为average score is %.2f) 第2至4行是最高分的学生的数据 (格式为 the max score is:\n %5d%10s后面三个%4d \nthe max average is %.2f\n)
时间: 2023-12-15 11:15:41 浏览: 87
好的,以下是代码实现:
```python
# 定义一个列表,用于存储学生数据
students = []
# 循环输入10个学生数据
for i in range(10):
data = input().split()
students.append({'id': data[0], 'name': data[1], 'score1': int(data[2]), 'score2': int(data[3]), 'score3': int(data[4])})
# 计算3门课的总平均分
total_score = 0
for student in students:
total_score += student['score1'] + student['score2'] + student['score3']
average_score = total_score / (10 * 3)
# 输出3门课的总平均分
print('average score is %.2f' % average_score)
# 计算最高分和最高平均分
max_score = 0
max_average = 0
max_student = None
for student in students:
score_sum = student['score1'] + student['score2'] + student['score3']
average = score_sum / 3
if score_sum > max_score:
max_score = score_sum
max_average = average
max_student = student
elif score_sum == max_score and average > max_average:
max_average = average
max_student = student
# 输出最高分的学生数据
print('the max score is:')
print('%5s%10s%4d%4d%4d%8.2f' % (max_student['id'], max_student['name'], max_student['score1'], max_student['score2'], max_student['score3'], max_average))
```
注意,上面的代码中,我们使用了列表和字典来存储学生数据。列表是一种非常常用的数据结构,可以用于存储一组有序的数据,例如这里的学生数据。而字典是一种键值对的数据结构,可以用于存储一组无序的数据,例如上一个例子中的学生数据。在这个例子中,我们先使用列表存储了10个学生的数据,然后遍历列表,计算3门课的总平均分,并找到最高分的学生数据。最后,我们输出了3门课的总平均分和最高分的学生数据。需要注意的是,这里的输出格式中使用了 %.2f 和 %8.2f,它们用于控制浮点数的输出格式,其中 %.2f 表示输出保留两位小数的浮点数,%8.2f 表示输出总宽度为8个字符(包括小数点和小数位)的浮点数,并保留两位小数。
阅读全文