C语言编程:评委打分去掉最高最低,计算平均得分
以下是使用C语言编写的解决方案:
#include <stdio.h>
void calculateScore(int scores[], int n) {
// 找到最高分和最低分的索引
int maxIndex = 0;
int minIndex = 0;
for (int i = 1; i < n; i++) {
if (scores[i] > scores[maxIndex]) {
maxIndex = i;
}
if (scores[i] < scores[minIndex]) {
minIndex = i;
}
}
// 计算总分
double sum = 0;
for (int i = 0; i < n; i++) {
if (i != maxIndex && i != minIndex) {
sum += scores[i];
}
}
// 计算平均分
double average = sum / (n - 2);
printf("%.1lf\n", average);
}
int main() {
int n;
scanf("%d", &n);
int scores[100];
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
calculateScore(scores, n);
return 0;
}
解释:
- 首先,定义一个函数
calculateScore,用于计算选手的得分。函数的参数为一个整型数组scores和数组的长度n。 - 在函数中,首先找到最高分和最低分的索引。
- 使用一个循环,累加除最高分和最低分之外的所有分数的和。
- 计算平均分,即总分除以剩余的评委数量。
- 使用
printf函数输出平均分,并保留小数点后一位。 - 在
main函数中,首先读取输入的评委数量n。 - 定义一个整型数组
scores,用于存储评委们给选手的得分。 - 使用一个循环,读取每个评委的得分,并将其存储到数组
scores中。 - 调用
calculateScore函数计算选手的得分,并输出结果。 - 注意:在示例代码中,我们假设输入的评委数量n不超过100。您可以根据实际情况进行调整。
原文地址: https://www.cveoy.top/t/topic/clb5 著作权归作者所有。请勿转载和采集!