C语言在某次比赛中有十个评委给选手打分,请编程实现选手的最终得分(按要求需要去掉十个评委中的一个最高分和一个最低分,再取剩余八个评委的平均值即为该选手的最终得分)
时间: 2024-11-20 10:42:21 浏览: 17
跳水比赛评分系统终极加密版.zip
5星 · 资源好评率100%
在C语言中,你可以通过数组存储评委的评分,然后使用循环结构找出最高分和最低分,接着对其他八位评委的分数求和并除以8得到平均分。这里是一个简单的示例:
```c
#include <stdio.h>
double calculateFinalScore(int scores[], int n) {
// 初始化最高分和最低分
double max_score = scores[0], min_score = scores[0];
for (int i = 1; i < n - 1; i++) { // 避免比较最高分和最低分
if (scores[i] > max_score) {
max_score = scores[i];
}
if (scores[i] < min_score) {
min_score = scores[i];
}
}
// 去掉最高分和最低分
for (int i = 0; i < n; i++) {
if (i != 0 && i != n - 1) { // 从第一个元素开始到倒数第二个元素
scores[i] -= min_score; // 移除最小分
scores[i] /= 9.0; // 然后更新为新的总分 / (n - 2)
}
}
// 计算并返回剩下八位评委的平均分
return sum(scores, n);
}
// 求和函数
double sum(double arr[], int size) {
double total = 0;
for (int i = 0; i < size; i++) {
total += arr[i];
}
return total;
}
int main() {
int scores[] = {85, 90, 92, 88, 86, 94, 87, 91, 93, 89};
int n = sizeof(scores) / sizeof(scores[0]);
printf("Final score: %.2f\n", calculateFinalScore(scores, n));
return 0;
}
```
这个程序首先找到最高分和最低分,然后将所有评委的原始分数减去最低分,并将结果除以剩余评委的数量(n-2),最后计算并打印出平均分。
阅读全文