在歌星大奖赛中,有 10个评委为参赛的选手打分,分数为1到100分。选手最后得分为去掉一个最高分和一个最低分后其余 8 个分数的平均值。用c语言实现
时间: 2023-10-25 09:06:37 浏览: 150
可以使用数组来保存每个评委的打分,然后对数组进行排序,去掉最高分和最低分,再计算剩下分数的平均值即可。
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define NUM_JUDGES 10 // 评委数量
#define NUM_SCORES (NUM_JUDGES - 2) // 有效分数数量
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int scores[NUM_JUDGES];
int sum = 0;
int i;
// 输入每个评委的打分
for (i = 0; i < NUM_JUDGES; i++) {
printf("请输入第%d位评委的打分:", i+1);
scanf("%d", &scores[i]);
}
// 对分数进行排序
qsort(scores, NUM_JUDGES, sizeof(int), compare);
// 去掉最高分和最低分后计算平均分
for (i = 1; i < NUM_JUDGES - 1; i++) {
sum += scores[i];
}
printf("选手得分为:%d\n", sum / NUM_SCORES);
return 0;
}
```
注意,这里使用了 `qsort` 函数来对分数进行排序,需要包含头文件 `stdlib.h`。
阅读全文