描述 学校举办歌手大赛,每个选季由n名评委进行打 分,然后在所有评分中去掉一个最高分和一个 最低分,剩下的n-2个评分的平均值,即为该选手的最终得分。 编写程序实现:输入第一行指定n的值,从第二 行开始每行输入一个评委的打分(共n行,满分 10分),按照上述计算选手的最终得分,保留一位小数输出。用c++
时间: 2023-06-17 09:02:50 浏览: 215
以下是实现该程序的代码:
```c++
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int main() {
int n;
cin >> n;
double scores[n];
for (int i = 0; i < n; i++) {
cin >> scores[i];
}
sort(scores, scores + n);
double sum = 0;
for (int i = 1; i < n - 1; i++) {
sum += scores[i];
}
double avg_score = sum / (n - 2);
cout << fixed << setprecision(1) << avg_score << endl;
return 0;
}
```
程序首先读取评委数量n和每个评委的打分,将这些分数存储在数组中,并使用sort函数对数组进行排序。接下来,程序计算所有分数的总和,但排除最高分和最低分,最后除以n-2,得出选手的最终得分。最后,程序使用fixed和setprecision函数保留一位小数输出选手的最终得分。
相关问题
题目描述 济南大学现举行新生歌手大赛,评分规则是这样的:一共有10个评委给每个歌手打分,分数采用百分制,算分时去掉一个最高分,去掉一个最低分,取其余8个评委的平均分作为歌手的得分。现有多个歌手的得分,请计算出他们每个人的得分。 输入 输入数据有多组,每组是一个歌手的打分,包括10个0到100之间的整数,数据之间用分空格分隔。 输出 对于每个歌手的打分,计算出这个歌手的得分,每个得分占一行,输出两位小数。
以下是Python实现:
```python
while True:
try:
scores = list(map(int, input().split()))
scores.sort()
avg_score = sum(scores[1:9]) / 8
print('%.2f' % avg_score)
except:
break
```
首先进入一个无限循环,每次读入一行数据,使用 `map` 函数将其转换为整数列表。然后对这个列表进行排序,去掉最高分和最低分后,取列表的第2到第9项(即8个评委的分数),求平均值即可。最后使用格式化字符串输出结果,保留2位小数。如果出现异常则跳出循环。
学校举办新生歌手大赛,每个选手的成绩由评委的评分去掉一个最高分和一个最低分剩下评分的平均值得到。 编写程序实现:输入第一行指定n,从第二行开始每行输入一个评委的得分(共n行),计算选手的成绩,并输出。
可以按照以下步骤编写程序:
1. 读入评委数量n。
2. 读入每个评委的得分,将它们存储在一个列表中。
3. 对列表中的得分进行排序。
4. 去掉最高分和最低分,计算剩下得分的平均值。
5. 输出平均值作为选手的成绩。
代码示例:
```python
n = int(input("请输入评委数量:"))
scores = []
for i in range(n):
score = float(input("请输入第{}个评委的得分:".format(i+1)))
scores.append(score)
scores.sort()
average_score = sum(scores[1:-1]) / (n-2)
print("选手的成绩为:{:.2f}".format(average_score))
```
注意:这个程序假设输入的分数都是合法的,没有进行输入验证。如果需要,可以在输入分数的时候添加一些验证代码,确保输入的分数是数字,并且在0到100之间。
阅读全文