C语言实现歌手评分系统:计算扣除最高最低分的平均得分

本程序使用C语言实现一个歌手评分系统,根据6位评委的打分,计算出每位歌手扣除最高分和最低分后的平均得分,并按最终得分由高到低排序输出。

输入格式:

依次输入第1个歌手的6位评委打分(10分制,分数为整型,分数之间使用空格分隔),第2个歌手的6位评委打分...以此类推。

输出格式:

参照输出示例,按最终得分由高到低的顺序输出每位歌手的编号及最终得分(最终得分保留2位小数)。

输入样例:

10 9 8 7 6 5 9 9 9 9 9 9 8 8 8 8 8 8 7 7 7 7 7 7 6 6 6 6 6 6 5 5 5 5 5 5 4 4 4 4 4 4 3 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1

输出样例:

2 5.00 1 5.00 3 4.67 4 4.67 5 4.67 6 4.67 7 4.67 8 4.67 9 4.67 10 4.67

代码实现:

#include <stdio.h>
#include <stdlib.h>

int main() {
    int scores[10][6], i, j, max, min, sum;
    double finalScores[10];

    // 输入评委打分
    for (i = 0; i < 10; i++) {
        for (j = 0; j < 6; j++) {
            scanf("%d", &scores[i][j]);
        }
    }

    // 计算每个歌手的最终得分
    for (i = 0; i < 10; i++) {
        max = scores[i][0];
        min = scores[i][0];
        sum = 0;
        for (j = 0; j < 6; j++) {
            if (scores[i][j] > max) {
                max = scores[i][j];
            }
            if (scores[i][j] < min) {
                min = scores[i][j];
            }
            sum += scores[i][j];
        }
        finalScores[i] = (double)(sum - max - min) / 4;
    }

    // 按最终得分排序输出
    for (i = 0; i < 10; i++) {
        for (j = i + 1; j < 10; j++) {
            if (finalScores[i] < finalScores[j]) {
                double temp = finalScores[i];
                finalScores[i] = finalScores[j];
                finalScores[j] = temp;
            }
        }
    }

    // 输出结果
    for (i = 0; i < 10; i++) {
        printf("%d %.2lf\n", i + 1, finalScores[i]);
    }

    return 0;
}

总结

本程序使用二维数组存储每个歌手的6位评委打分,通过循环遍历计算每个歌手的最终得分,并将结果存储在另一数组中。最后使用冒泡排序算法对最终得分进行排序,并输出结果。

C语言实现歌手评分系统:计算扣除最高最低分的平均得分

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

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