选手参加比赛,由10位裁判为其打分,该选手的最后得分为去掉最高分和最低分后的平均分。编写程序输入分数并计算和输出最终得分。C语言
时间: 2024-11-19 19:35:24 浏览: 32
在C语言中,我们可以使用数组来存储10位裁判的分数,并通过循环来处理最高分和最低分的去除,然后求平均分。以下是一个简单的示例程序:
```c
#include <stdio.h>
#define NUM_JUDGES 10
int main() {
int scores[NUM_JUDGES]; // 存储裁判分数的数组
float total_score = 0; // 记录所有有效分数之和
float average_score; // 最终得分
printf("请输入10位裁判的评分(整数):\n");
for (int i = 0; i < NUM_JUDGES; i++) {
scanf("%d", &scores[i]);
total_score += scores[i];
}
// 排序数组并去掉最高分和最低分
qsort(scores, NUM_JUDGES, sizeof(int), compare);
scores[0] = scores[NUM_JUDGES - 1] = 0; // 去掉最高分和最低分
if (NUM_JUDGES > 2) { // 至少需要有三个有效分数才能计算平均值
average_score = total_score / (NUM_JUDGES - 2);
} else {
printf("无法计算平均分,至少需要三位裁判的评分。\n");
return 0;
}
printf("选手的最终得分是: %.2f\n", average_score);
return 0;
}
// 比较函数用于排序
int compare(const void *a, const void *b) {
return (*(const int *)a) - (*(const int *)b);
}
```
当你运行这个程序时,它会提示你逐个输入10位裁判的分数,然后计算并打印出去掉最高分和最低分后的平均分。
阅读全文