8号选手参加校园歌手大赛,编程读入20个整数(70-100之间)并存入数组中做为20个评委的打分,请按题目要求编程实现输出样例要求的功能(最后得分为去掉最高分和最低分后的平均分)。
时间: 2023-05-31 19:18:10 浏览: 371
### 回答1:
这是一个关于评委评分的问题,需要您编写一个程序来解决。首先,您需要读入20个整数,这些整数代表20个评委的打分,并将它们存储在数组中。然后,您需要去掉最高分和最低分,最后计算剩下的18个分数的平均分。
下面是一个可以实现上述功能的代码:
```
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int score[20];
for (int i = 0; i < 20; i++)
{
cin >> score[i];
}
sort(score, score + 20);
int sum = 0;
for (int i = 1; i < 19; i++)
{
sum += score[i];
}
cout << sum / 18 << endl;
return 0;
}
```
这段代码使用了C++中的sort函数,它可以对数组进行排序。在这里,我们对数组score进行了从小到大的排序,然后从第1个元素到第19个元素求和,最后除以18,就得到了最终的平均分。
### 回答2:
这道题是一道比较典型的数组应用题,要求我们将20位评委打出的分数存入一个数组中,然后去掉最高分和最低分,求出平均分数。
首先,我们需要编写一个读入整数的程序,可以使用 C++ 中的 cin 和 scanf 等函数,也可以使用 Python 的 input 函数等。
其次,我们需要将读入的20个整数存入一个数组中。可以使用 C++ 中的 int scores[20] 数组来存储,也可以使用 Python 中的 scores = [] 列表来存储。
然后,我们需要计算出去掉最高分和最低分后的平均分。这可以通过以下步骤来完成:
1. 定义一个变量 sum 用来存储去掉最高分和最低分后的总分数,初始值为0。
2. 定义两个变量 max_score 和 min_score 分别用来存储最高分和最低分。初始值为第一个分数。
3. 用一个 for 循环遍历 scores 数组,找出最高分和最低分,并将剩余分数累加到 sum 中。
4. 计算平均分数,即 sum / 18。
最后,将得分输出到屏幕上即可。输出格式可以按照题目要求进行修改。
下面是一个示例代码(Python实现):
```
scores = []
for i in range(20):
score = int(input())
scores.append(score)
max_score = scores[0]
min_score = scores[0]
sum = 0
for i in range(20):
if scores[i] > max_score:
max_score = scores[i]
if scores[i] < min_score:
min_score = scores[i]
sum += scores[i]
avg_score = (sum - max_score - min_score) / 18
print("该选手的得分是:%.2f" % avg_score)
```
通过以上代码的执行,就可以得到该选手的得分并输出到屏幕上。
当然,在实际编写代码的过程中,我们还需要考虑一些异常情况的处理,比如输入的分数不在70-100的范围内,或者输入的分数个数不足20个等情况。这些情况需要通过合适的异常处理和错误提示来解决。
### 回答3:
这道题目可以用C++语言来编写程序。首先,我们需要定义一个整型数组来存储评委的评分,这个数组的长度为20,对应着20个评委。数组可以定义为:int score[20]。
接下来,我们可以用for循环结构来读入20个评委的评分,并将这些评分存储到数组中。由于题目要求评分在70-100之间,所以我们可以用rand()函数生成一个70到100之间的随机数作为评分。for循环代码如下:
for(int i=0; i<20; i++){
score[i] = rand() % 31 + 70; //生成70到100之间的随机数作为评分
cout << score[i] << " ";
}
上述代码中,我们利用rand()函数生成了一个0到30之间的随机数,并将它加上70,以此生成70到100之间的随机数。
接下来,我们需要计算最高分和最低分,并将它们从总分中去掉。这部分可以用for循环结构来实现。具体来说,我们可以用变量maxScore和minScore分别记录最高分和最低分,然后遍历数组,找到最高分和最低分,并将它们从总分中减去。代码如下:
int maxScore = score[0], minScore = score[0];
int sum = score[0];
for(int i=1; i<20; i++){
if(score[i] > maxScore){ //找到最高分
maxScore = score[i];
}
if(score[i] < minScore){ //找到最低分
minScore = score[i];
}
sum += score[i]; //累加总分
}
sum -= maxScore; //去掉最高分
sum -= minScore; //去掉最低分
最后,我们需要计算去掉最高分和最低分后的平均分,并将结果输出。代码如下:
double avgScore = sum / 18.0; //计算平均分
cout << endl << "去掉一个最高分:" << maxScore << endl;
cout << "去掉一个最低分:" << minScore << endl;
cout << "最后得分:" << avgScore;
完整的程序如下:
阅读全文