c语言写青年歌手参加歌曲大奖赛,有 10 个评委进行打分,编程求这位选手的平均得分(去掉一个最高分和一个最低分)。
时间: 2024-05-07 09:18:39 浏览: 108
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
可以使用数组来存储10个评委的打分,然后按照从小到大的顺序排序,去掉最高分和最低分,再计算剩余分数的平均值即可。
以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define NUM_JUDGES 10 // 评委数量
// 比较函数,用于排序
int cmp(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]);
sum += scores[i];
}
// 排序
qsort(scores, NUM_JUDGES, sizeof(int), cmp);
// 去掉最高分和最低分
sum = sum - scores[0] - scores[NUM_JUDGES - 1];
// 计算平均得分
double avg_score = (double)sum / (NUM_JUDGES - 2);
printf("该选手的平均得分为:%.2lf\n", avg_score);
return 0;
}
```
需要注意的是,在计算平均得分时,为了避免整数除法造成的精度损失,我们先将总分数转换为 double 类型。
阅读全文