C语言:校园十佳歌手比赛中,每位评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。
时间: 2024-11-23 16:51:01 浏览: 28
在C语言中,你可以通过以下几个步骤来实现这个功能:
1. 定义一个数组来存储所有评委的分数,以及两个变量用于存储最高分和最低分。
```c
#include <stdio.h>
#define MAX_JUDGES 10 // 根据实际情况设置评委人数上限
int main() {
int judge_scores[MAX_JUDGES];
int highest_score, lowest_score;
int num_judges, i;
```
2. 获取评委人数和他们的分数。使用循环读取每个评委的分数,同时更新最高分和最低分。
```c
printf("请输入评委人数:");
scanf("%d", &num_judges);
if (num_judges > MAX_JUDGES) {
printf("评委人数过多,超出限制\n");
return 1;
}
// 读取评委分数
for (i = 0; i < num_judges; ++i) {
scanf("%d", &judge_scores[i]);
highest_score = (i == 0 || judge_scores[i] > highest_score) ? judge_scores[i] : highest_score;
lowest_score = (i == 0 || judge_scores[i] < lowest_score) ? judge_scores[i] : lowest_score;
}
```
3. 去掉最高分和最低分后,计算剩余分数的平均值。
```c
// 移除最高分和最低分
for (i = 0; i < num_judges - 2; ++i) { // 注意减去2,因为要去掉两个
judge_scores[i] = judge_scores[i + 2]; // 将后续位置的分数前移
}
// 计算平均分
int average_score = 0;
for (i = 0; i < num_judges - 2; ++i) {
average_score += judge_scores[i];
}
average_score /= (num_judges - 2); // 除以剩余分数的数量
```
4. 输出选手的得分。
```c
printf("选手的平均得分为:%.2f 分\n", average_score);
return 0;
}
```
阅读全文