7-3 计算每个学生的平均成绩
7-3 计算每个学生的平均成绩
分数 20
作者 殷伟凤
单位 浙江传媒学院
输入所有学生的姓名和成绩,以#结束。输出每个学生的平均成绩表。
输入格式:
每一行输入一个学生的姓名和成绩,以空格分隔。
输入完成后以#结束
输出格式:
每行显示一个学生的姓名和平均成绩,姓名占8位宽度,平均成绩保留两位小数点。姓名和平均成绩之间用空格隔开。
输入样例1:
在这里给出一组输入。例如:
Maria 20
David 10
Bob 15
David 20
输出样例1:
在这里给出相应的输出。例如:
姓 名 平均成绩
Maria 20.00
David 15.00
Bob 15.00
输入样例2:
在这里给出一组输入。例如:
韩思 80
杨世忆 70
徐晓畅 100
黄嘉 95
刘天宇 60
叶鸿 80
韩思 85
杨世忆 65
徐晓畅 100
黄嘉 90
刘天宇 80
刘天宇 90
徐晓畅 100
徐晓畅 100
徐晓畅 100
#
输出样例2:
在这里给出相应的输出。例如:
姓 名 平均成绩
韩思 82.50
杨世忆 67.50
徐晓畅 100.00
黄嘉 92.50
刘天宇 76.67
叶鸿 80.00
代码长度限制
16 KB
时间限制
400 ms
内存限制
解题思路
- 设计一个合适的数据结构,这里我们需要三个信息,一个是姓名,第二是成绩,然后还有计算平均成绩,所以我要知道被统计科目的次数,此时使用如下结构存储最为合适
items['姓名'] = ['所有成绩之和','被统计次数']
由此得知平均成绩 = 所有成绩之和/被统计次数
最后我们输出成绩即可。
# 用于记录数据
items = dict()
# 接收数组存入列表
while 1:
string = input()
if string == '#':
break
else:
name = string.split()[0]
score = float(string.split()[1])
if items.__contains__(name):
items[name][0] += score
items[name][1] += 1
else:
items[name] = [score, 1]
# 计算所有人成绩的平均数
print("姓 名 平均成绩")
for k in items.keys():
items[k][0] /= items[k][1]
print(f"{k}".ljust(8), f"{float(items[k][0]):.2f}".rjust(4))

浙公网安备 33010602011771号