某次比赛有n个评委对参赛选手打分。编程输入各个评委的评分,去掉一个最高分和1个最低分后,输出该选手的平均分。
时间: 2024-05-12 07:21:05 浏览: 81
算法1:
1. 输入n个评委的评分,并记录总分sum和最高分max和最低分min。
2. 计算去掉最高分和最低分后的总分sum' = sum - max - min。
3. 计算平均分avg = sum' / (n-2)。
4. 输出平均分avg。
时间复杂度:O(n)
算法2:
1. 输入n个评委的评分,并将其存储在一个数组score中。
2. 对数组score进行排序。
3. 计算去掉score[0]和score[n-1]后的总分sum' = score[1]+score[2]+...+score[n-2]。
4. 计算平均分avg = sum' / (n-2)。
5. 输出平均分avg。
时间复杂度:O(nlogn)
参考代码(算法1):
```python
n = int(input())
score = list(map(int, input().split()))
max_score = max(score)
min_score = min(score)
sum_score = sum(score)
avg_score = (sum_score - max_score - min_score) / (n-2)
print(avg_score)
```
参考代码(算法2):
```python
n = int(input())
score = list(map(int, input().split()))
score.sort()
sum_score = sum(score[1:n-1])
avg_score = sum_score / (n-2)
print(avg_score)
```
阅读全文