某演讲比赛共有十位评委,每位评委对每个参赛选手打分,每位选手的得分为去掉最高分与去掉最低分的平均分。试用c语言编写这个程序,要求:从键盘输入每位评委的打分,计算某位选手的成绩
时间: 2023-03-03 22:49:46 浏览: 623
评委评分算法(去最高和最低求平均)
以下是用C语言编写的计算选手得分的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define JUDGE_NUM 10 //评委数量
#define SCORE_NUM 8 //每个选手获得的分数数量
int main() {
int scores[SCORE_NUM]; //用于存放选手获得的分数
int min_score, max_score, total_score = 0;
//从键盘输入每个评委对选手的打分
for (int i = 0; i < SCORE_NUM; i++) {
printf("请输入第 %d 个评委的打分:", i + 1);
scanf("%d", &scores[i]);
}
//计算去掉最高分与最低分后的总分数
min_score = max_score = scores[0];
for (int i = 0; i < SCORE_NUM; i++) {
if (scores[i] < min_score) {
min_score = scores[i];
} else if (scores[i] > max_score) {
max_score = scores[i];
}
total_score += scores[i];
}
total_score = total_score - min_score - max_score;
//计算选手的平均得分
double average_score = (double)total_score / (JUDGE_NUM - 2);
printf("该选手的成绩为:%.2f", average_score);
return 0;
}
```
在这个程序中,我们定义了两个常量 `JUDGE_NUM` 和 `SCORE_NUM`,分别表示评委数量和每个选手获得的分数数量。我们用一个整型数组 `scores` 存放每个评委对选手的打分。接着,我们通过 `for` 循环从键盘读入每个评委的打分,存放在 `scores` 数组中。
接下来,我们用一个 `for` 循环遍历 `scores` 数组,找出其中的最高分和最低分,并计算去掉最高分和最低分后的总分数。最后,我们根据评委数量和总分数计算选手的平均得分,并打印输出。
阅读全文