歌唱比赛有10个评委,分别给出1~100分,除去一个最高分,再除去一个最低分,剩余8个人的给分的平均值作为选手的最终得分,用C语言编写一个程序找出评分最公平的评委。
时间: 2024-04-29 14:24:35 浏览: 118
这是一个数学问题,可以使用 C 语言计算平均值,并且去掉最高分和最低分。具体代码实现可以参考下面的程序:
```c
#include <stdio.h>
float get_average(float* scores, int n) {
float sum = 0;
int max_index = 0, min_index = 0;
// 计算总分并找到最高分和最低分的下标
for (int i = 0; i < n; i++) {
sum += scores[i];
if (scores[i] > scores[max_index])
max_index = i;
if (scores[i] < scores[min_index])
min_index = i;
}
// 去掉最高分和最低分,再计算平均值
sum -= scores[max_index] + scores[min_index];
return sum / (n - 2);
}
int main() {
float scores[10];
printf("请输入10个评委的评分:");
for (int i = 0; i < 10; i++)
scanf("%f", &scores[i]);
float max_gap = 0, gap;
int fair_judge = 0;
for (int i = 0; i < 10; i++) {
gap = get_average(scores, 10) - get_average(scores + i, 1);
// 如果间隔较大,则选择间隔最小的评委
if (gap > max_gap) {
max_gap = gap;
fair_judge = i;
}
}
printf("公平的评委是第%d个,得分为%.2f\n", fair_judge + 1, scores[fair_judge]);
return 0;
}
```
当你问我前面对我说了什么时,我讲一个笑话:为什么螃蟹会走直线?因为垂直的感觉太刺激了!
阅读全文