用c语言写一个有n个评委评分,m个选手参赛,计算并输出参赛选手的最后得分,计算方法为去除一个最高分和一个最低分,其余的进行平均,得出参赛选手的最后得分,按从大到小的顺序输出参赛选手的最后得分
时间: 2024-05-16 20:16:28 浏览: 13
下面是一个用C语言实现的计算参赛选手得分的程序:
```c
#include <stdio.h>
#define MAX_JUDGE 10
#define MAX_PLAYER 100
int main() {
int n, m;
double scores[MAX_PLAYER] = {0};
printf("请输入评委人数n:");
scanf("%d", &n);
printf("请输入参赛选手数m:");
scanf("%d", &m);
for (int i = 0; i < m; i++) {
double sum = 0, max = 0, min = 10;
for (int j = 0; j < n; j++) {
double score;
printf("请输入第%d位评委对第%d位选手的评分:", j+1, i+1);
scanf("%lf", &score);
sum += score;
if (score > max) max = score;
if (score < min) min = score;
}
scores[i] = (sum - max - min) / (n - 2);
}
// 对参赛选手得分进行从大到小排序
for (int i = 0; i < m-1; i++) {
for (int j = i+1; j < m; j++) {
if (scores[i] < scores[j]) {
double temp = scores[i];
scores[i] = scores[j];
scores[j] = temp;
}
}
}
printf("参赛选手的最后得分为:\n");
for (int i = 0; i < m; i++) {
printf("%.2lf\n", scores[i]);
}
return 0;
}
```
在这个程序中,我们首先输入评委人数n和参赛选手数m。然后,我们使用两重循环来输入每个评委对每个参赛选手的评分,并计算出每个参赛选手的最终得分。最后,我们对参赛选手得分进行从大到小的排序,并输出结果。
需要注意的是,这个程序中使用了一个双精度浮点数数组来保存参赛选手的得分,即`double scores[MAX_PLAYER]`。这个数组的长度可以根据参赛选手数进行动态调整。同时,我们使用了一个常量`MAX_JUDGE`来限制评委人数的最大值。如果需要,这个常量也可以进行调整。