2.青年歌手参加歌曲大奖赛,有10个评委对她(他)进行打分,试编程求这位选手的平均得分并输出(去 掉一个最高分和一个最低分,保留2位小数) (15分) 例如输入 7 7.5 8 6 6.5 10 9 8 7 8 则输出 去掉一个最高分10.00一个最低分6.00 最后得分 7.63
时间: 2023-05-10 16:55:52 浏览: 763
评委评分算法(去最高和最低求平均)
以下是 CSDN 开发的 C知道 的回答:
这个问题可以用 C 语言编写一个程序来解决。以下是一个示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define NUM_JUDGES 10
int compare(const void *a, const void *b) {
return (*(double*)a > *(double*)b) ? 1 : -1;
}
int main() {
double scores[NUM_JUDGES];
double sum = 0.0;
int i;
for (i = 0; i < NUM_JUDGES; i++) {
scanf("%lf", &scores[i]);
}
qsort(scores, NUM_JUDGES, sizeof(double), compare);
for (i = 1; i < NUM_JUDGES - 1; i++) {
sum += scores[i];
}
printf("去掉一个最高分%.2lf一个最低分%.2lf最后得分%.2lf\n", scores[NUM_JUDGES - 1], scores[0], sum / (NUM_JUDGES - 2));
return 0;
}
```
这个程序首先定义了一个常量 NUM_JUDGES,表示评委的数量。然后定义了一个数组 scores,用来存储每个评委的得分。接着使用循环读入每个评委的得分。然后使用 qsort 函数对得分进行排序。最后使用循环计算去掉一个最高分和一个最低分后的得分总和,并输出平均得分。
注意,这个程序假设输入的数据都是合法的,即每个评委的得分都是一个合法的浮点数。如果输入的数据不合法,程序可能会出现错误。
阅读全文