c语言在演讲比赛中,有10个评委为参赛的选手打分,分数1~100,选手最后得分去掉一个最高分和一个最低分,其余8个分数的平均值,请编写一个程序实在这个功能
时间: 2024-03-16 12:41:43 浏览: 26
好的,可以使用数组来存储评委的分数,然后排序后去掉最高分和最低分,再计算剩下分数的平均值。以下是一个示例程序:
```c
#include <stdio.h>
#define N 10 // 评委个数
int main() {
int scores[N]; // 存储评委分数的数组
int sum = 0; // 所有分数的总和
int max = 0; // 最高分
int min = 100; // 最低分
// 输入评委分数
for (int i = 0; i < N; i++) {
printf("请输入第%d位评委的分数:", i+1);
scanf("%d", &scores[i]);
// 计算总和、最高分和最低分
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
// 去掉最高分和最低分,计算平均分
double avg = (sum - max - min) / 8.0;
printf("选手的最终得分为:%f\n", avg);
return 0;
}
```
在这个示例程序中,我们首先定义了一个长度为10的数组`scores`来存储评委的分数。然后使用一个for循环来输入每一个评委的分数,并且在输入的同时计算总和、最高分和最低分。注意,这里的最高分和最低分的初始值分别是0和100,因为题目中给出了分数的范围是1~100。
接下来,我们计算剩下的8个分数的总和,并且除以8来得到平均分。注意,这里我们使用了浮点数来存储平均分,因为除法运算可能会得到小数。
最后,我们输出选手的最终得分,程序结束。
希望这个示例程序能够帮助你理解如何实现这个功能。如果有任何问题,欢迎继续提问。