青年歌手参加歌曲大奖赛,有10个评委进行打分,编程求这位选手的平均得分(去掉一 个最高分和一个最低分)。C语言
时间: 2024-05-02 20:17:37 浏览: 134
下面是一种实现方式:
```c
#include <stdio.h>
#include <stdlib.h>
#define JUDGE_NUM 10 // 评委数量
int compare(const void *a, const void *b) {
return (*(int*)a - *(int*)b);
}
int main() {
int scores[JUDGE_NUM];
int i, total_score = 0;
// 输入10个评委的分数
for (i = 0; i < JUDGE_NUM; i++) {
printf("请输入第%d个评委的分数:", i + 1);
scanf("%d", &scores[i]);
}
// 对分数进行排序
qsort(scores, JUDGE_NUM, sizeof(int), compare);
// 去掉一个最高分和一个最低分
for (i = 1; i < JUDGE_NUM - 1; i++) {
total_score += scores[i];
}
// 输出平均得分
printf("选手的平均得分为:%d\n", total_score / 8);
return 0;
}
```
该程序使用了qsort函数对分数进行排序,然后去掉一个最高分和一个最低分,最后计算平均得分。需要注意的是,最后计算平均得分时要除以8而不是10,因为去掉了两个分数。