以下是使用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。您可以根据实际情况进行调整。
C语言编程:评委打分去掉最高最低,计算平均得分

原文地址: https://www.cveoy.top/t/topic/clb5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录