在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个程序实现。
时间: 2023-05-31 09:19:51 浏览: 216
C语言实现歌手大奖赛计分程序
5星 · 资源好评率100%
### 回答1:
可以先将10个评委的分数存储在一个列表中,然后使用Python内置函数max和min找到最高分和最低分,再将这两个分数从列表中删除。最后,使用sum函数求出剩余8个分数的总和,再除以8得到平均值即为选手最后得分。
具体实现代码如下:
scores = [85, 92, 78, 90, 95, 87, 80, 88, 91, 89] # 10个评委的分数列表
max_score = max(scores) # 找到最高分
min_score = min(scores) # 找到最低分
scores.remove(max_score) # 删除最高分
scores.remove(min_score) # 删除最低分
final_score = sum(scores) / len(scores) # 计算平均值
print("选手最后得分为:", final_score) # 输出结果
注意,以上代码仅为示例,实际应用中需要根据具体情况修改分数列表和输出格式。
### 回答2:
这道题目可以用编程语言来实现,例如Python。我们可以用一个列表来存储每个评委给选手的分数,再使用内置的函数来去除最高分和最低分,最后求出剩余分数的平均值。
具体的代码可以如下:
```python
scores = [] # 用一个列表存储每个评委给选手的分数
# 输入10个评委的分数
for i in range(10):
score = int(input("请输入第%d个评委的分数:" % (i+1)))
scores.append(score)
# 去除最高分和最低分
max_score = max(scores)
min_score = min(scores)
scores.remove(max_score)
scores.remove(min_score)
# 求剩余分数的平均值
avg_score = sum(scores) / len(scores)
print("选手最后的得分为:%.2f" % avg_score)
```
以上代码中,我们使用了`max()`和`min()`函数来获取列表中的最高分和最低分,再使用`remove()`函数来从列表中删除它们。最后,使用`sum()`函数和`len()`函数求出剩余分数的总和和个数,并将它们相除得到平均值。我们使用`print()`函数将平均值输出到屏幕上,保留两位小数。
### 回答3:
这道题需要用到数组和排序的相关知识,下面我将介绍具体的实现过程。
首先,我们需要用一个数组来存储选手的得分。然后,通过循环让用户输入10个评委打的分数,将这些分数存储到数组中。
接着,我们需要对数组进行排序。这里我选择使用冒泡排序,因为它是比较常见的排序算法,并且比较容易理解和实现。排完序后,我们就可以根据题目中的要求,去掉一个最高分和一个最低分,然后计算剩余8个分数的平均值。
最后,我们将这个平均值输出即可。下面是具体的代码实现:
```
#include <iostream>
using namespace std;
int main() {
int scores[10];
int sum = 0;
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i + 1 << "个评委打的分数:";
cin >> scores[i];
}
// 冒泡排序
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9 - i; j++) {
if (scores[j] > scores[j + 1]) {
int temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
// 去掉一个最高分和一个最低分
for (int i = 1; i < 9; i++) {
sum += scores[i];
}
// 计算平均值
float avg = sum / 8.0;
cout << "选手最终得分为:" << avg << endl;
return 0;
}
```
代码解析:
第1~7行:定义一个int类型的数组scores,用来存储选手的得分,以及一个整型变量sum,用来存储去掉最高和最低分后剩余分数的总和。
第9~14行:通过循环让用户输入10个评委的打分,并将这些分数存储到scores数组中。
第17~28行:使用冒泡排序将数组scores中的元素从小到大进行排序。
第31~35行:从第二个元素开始加到倒数第二个元素结束,将去掉最高和最低分的剩余分数进行累加。
第38~40行:将累加和除以8得到平均分,将其输出。
最后,编译运行程序,输入10个评委的分数,即可得到最后的得分。
阅读全文