8号选手参加校园歌手大赛,编程读入20个整数(0-100之间)并存入数组中做为评委打分。最后得分计算规则:先计算20个数的平均分,然后去掉所有与平均分相差10分以上的分数,最后把剩下的分数再取平均做为最后得分。如果没有剩下分数,此次打分无效。
时间: 2023-05-31 20:17:47 浏览: 288
### 回答1:
这道题目要求编写程序读入20个整数,存入数组中作为评委打分,然后根据一定的规则计算最终得分。具体规则是:先计算20个数的平均分,然后去掉所有与平均分相差10分以上的分数,最后把剩下的分数再取平均做为最后得分。如果没有剩下分数,此次打分无效。
### 回答2:
8号选手参加校园歌手大赛,需要编写一个程序将20个评委打分存入数组中,最终计算选手得分。该程序可以按照以下步骤实现:
1. 首先,定义一个长度为20的整型数组,用于存储评委的打分。在程序中,可以通过循环读入20个整数,并将其保存到数组中。
2. 计算数组中所有元素的平均值。可以通过循环遍历数组,将数组中所有元素的值相加,然后除以20得到平均值。
3. 遍历数组,去掉与平均值相差10分以上的打分。可以通过循环遍历数组中的每个元素,判断该元素与平均值的差值是否大于10分。如果是,则将该元素从数组中删除。
4. 如果数组中有剩余的元素,则计算这些元素的平均值。可以再次循环遍历数组中的每个元素,将剩余元素的值相加,然后除以剩余元素的个数,得到最终得分。
5. 如果没有剩余分数,则输出“此次打分无效”。
下面是完整的程序实现:
#include <stdio.h>
int main()
{
int scores[20];
int sum = 0;
int average = 0;
int valid_score_count = 0;
int valid_score_sum = 0;
int valid_score_average = 0;
// 读入评委打分
for (int i = 0; i < 20; i++) {
printf("请输入评委%d的打分:", i + 1);
scanf("%d", &scores[i]);
sum += scores[i];
}
// 计算平均分
average = sum / 20;
printf("所有选手的平均分是:%d\n", average);
// 去掉与平均分相差10分以上的分数
for (int i = 0; i < 20; i++) {
if (scores[i] >= average - 10 && scores[i] <= average + 10) {
valid_score_count++;
valid_score_sum += scores[i];
}
}
// 计算最终得分
if (valid_score_count > 0) {
valid_score_average = valid_score_sum / valid_score_count;
printf("有效的分数有%d个,最终得分是:%d\n", valid_score_count, valid_score_average);
} else {
printf("此次打分无效\n");
}
return 0;
}
### 回答3:
在校园歌手大赛中,8号选手采用编程的方式进行评委打分,读入20个整数(0-100之间)并将它们存储到数组中。根据比赛规则,最终得分的计算方法如下:
首先,将20个数的平均分计算出来。在这个基础上,去掉与平均分相差10分以上的分数。最后,将剩下的分数再次平均,作为8号选手的最终得分。如果没有剩余的分数,该次打分则无效。
为了完成这个任务,我们可以先读入20个数,并将它们存储到一个数组中。然后计算数组中所有数字的和,并除以20,得到平均分。接下来,我们再依次遍历数组中的每一个数字,如果这个数字与平均分的差值超过了10分,就将它从数组中删除。然后,再次计算数组中剩余数字的总和,并根据剩余数字的个数计算最终得分。
如果没有剩余的数字,该次打分无效。在这种情况下,我们可以在程序中加入一个条件判断语句,如果最终得分为0,则输出提示信息“此次打分无效”。如果最终得分不为零,则输出最终得分。
综上所述,完成这个任务的步骤包括:读入20个数并存储到数组中;计算平均分并去除相差10分以上的数字;计算最终得分并输出结果。在编写程序时,还需要处理一些特殊情况,例如输入的数字范围不在0-100之间,或者数组中不足20个数字等。为了保证程序正确性,我们需要充分测试各种可能出现的情况。
阅读全文
相关推荐


















