C语言实例:计算选手比赛平均得分

本篇文章将带您使用C语言编写一个程序,用于计算比赛中选手的平均得分,其中最高分和最低分会被剔除。

问题描述

评委会给参赛选手现场打分。选手得分的计算规则为:去掉一个最高分和一个最低分,然后计算平均得分。

代码实现

以下是使用C语言编写的解决方案:

#include <stdio.h>

void calculateScore(int scores[], int n) {
    int minScore = scores[0]; // 初始化最低分为第一个分数
    int maxScore = scores[0]; // 初始化最高分为第一个分数
    int sum = scores[0]; // 初始化总分为第一个分数
    
    for (int i = 1; i < n; i++) {
        if (scores[i] < minScore) {
            minScore = scores[i]; // 更新最低分
        }
        
        if (scores[i] > maxScore) {
            maxScore = scores[i]; // 更新最高分
        }
        
        sum += scores[i]; // 累加总分
    }
    
    double average = (sum - minScore - maxScore) * 1.0 / (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
  • 在函数中,首先初始化最低分、最高分和总分为第一个分数。
  • 使用一个循环,从第二个分数开始遍历,更新最低分、最高分和累加总分。
  • 根据题目的要求,剔除最低分和最高分后,计算剩余分数的平均分。
  • 最后,输出最后得分,保留小数点后一位。
  • main 函数中,使用 scanf 函数读取输入的评委数量 n。
  • 定义一个整型数组 scores,用于存储评委们的打分。
  • 使用一个循环,读取每个评委的打分,并将其存储到数组 scores 中。
  • 调用 calculateScore 函数计算选手的最后得分。
  • 注意:在示例代码中,我们假设评委数量不超过 100。您可以根据实际情况进行调整。

示例输入输出

输入样例 1:

5
80 84 92 90 71

输出样例 1:

84.7

输入样例 2:

7
67 80 66 75 78 70 72

输出样例 2:

72.4
C语言实例:计算选手比赛平均得分(去掉最高分和最低分)

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

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