武术比赛最终得分计算

所属作业: hw5 数据结构: 列表

写法1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 输入评委人数 n
n = int(input())

# 输入 n 个评分,并将其转换为浮点数列表
scores = list(map(float, input().split()))

# 计算所有评分的总和
total = sum(scores)

# 找到最高分
max_score = max(scores)

# 找到最低分
min_score = min(scores)

# 计算去掉最高分和最低分后的平均分
average = (total - max_score - min_score) / (n - 2)

# 输出最终得分,保留两位小数
print("{:.2f}".format(average))

写法2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 读取评委人数n,并将其转换为整数
n = int(input())

# 读取评委的评分,将其转换为浮点数列表
scores = list(map(float, input().split()))

# 对评分进行排序
scores.sort()

# 去掉最高分和最低分,取剩余分数
# scores[1:-1]表示从第二个元素到倒数第二个元素(去掉最高分和最低分)
a = scores[1:-1]

# 计算剩余分数的平均值
b = sum(a) / len(a)

# 输出最终得分,保留两位小数
print("%.2f" % b)

写法3

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# 输入评委人数n
n = int(input())

# 输入n个浮点数,代表每位评委的评分,并将其转换为列表
scores = list(map(float, input().split()))

# 对评分列表进行排序
scores.sort()

# 删除最低分(第一个元素)和最高分(最后一个元素)
del scores[0]  # 删除最低分
del scores[-1]  # 删除最高分

# 计算剩余分数的平均值
# (n-2) 是因为我们去掉了两个分数
c = sum(scores) / (n - 2)

# 输出最终得分,保留两位小数
print('%.2f' % c)