有10个学生,每个学生的数据包括学号、姓名、性别,若为男生,还有1500米成绩、标枪成绩、跳高成绩和100米成绩,若为女生,还有800米成绩、立定跳远成绩和100米成绩。从键盘输入10个学生数据,要求输出每个学生的平均成绩(包括学号、姓名、性别,平均成绩)。 输入格式: 输入共10行,表示10个学生数据,性别分别为m(男生)和f(女生)。 输出格式: 输出也是10行,输出每个学生的学号、姓名、性别,平均成绩 (格式:%5d%10s%3c%4d)。
时间: 2023-11-04 12:19:09 浏览: 48
定义一个有10个元素的数组,用其代表10个学生的考试成绩,从键盘输入10个成绩,统计平均成绩,输出高于平均成绩的序号。
好的,以下是代码实现:
```python
# 定义一个字典,用于存储学生数据
students = {}
# 循环输入10个学生数据
for i in range(10):
data = input().split()
# 如果是男生,输入4个成绩数据
if data[2] == 'm':
students[data[0]] = {'name': data[1], 'sex': data[2], 'score_1500': int(data[3]), 'score_javelin': int(data[4]), 'score_high_jump': int(data[5]), 'score_100': int(data[6])}
# 如果是女生,输入3个成绩数据
else:
students[data[0]] = {'name': data[1], 'sex': data[2], 'score_800': int(data[3]), 'score_long_jump': int(data[4]), 'score_100': int(data[5])}
# 循环输出每个学生的平均成绩
for student_id, student_data in students.items():
# 计算平均成绩
if student_data['sex'] == 'm':
average_score = (student_data['score_1500'] + student_data['score_javelin'] + student_data['score_high_jump'] + student_data['score_100']) / 4
else:
average_score = (student_data['score_800'] + student_data['score_long_jump'] + student_data['score_100']) / 3
# 输出学生数据和平均成绩
print('%5s%10s%3s%4d' % (student_id, student_data['name'], student_data['sex'], average_score))
```
注意,上面的代码中,我们使用了字典来存储每个学生的数据。字典是一种非常方便的数据结构,可以用于存储类似于数据库表中的数据。在这个例子中,我们以学生的学号作为字典的键,以学生的其他数据(姓名、性别、成绩等)作为字典的值。这样,我们就可以通过学生的学号来快速查找和处理学生的数据了。
阅读全文