C语言实现歌手比赛得分排名:扣除最高最低分计算平均分

本程序使用C语言实现歌手比赛得分排名,输入10位歌手的6位评委打分,计算每位歌手扣除最高最低分后的平均得分,并按得分由高到低输出排名结果。

输入格式:

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

输出格式:

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

输入样例:

8 9 8 8 9 9 9 10 10 9 9 10 7 6 7 8 6 8 8 8 9 9 8 9 9 9 10 10 10 10 10 10 10 10 10 10 9 9 9 9 9 9 8 8 7 7 8 8 7 8 8 8 7 7 10 10 10 10 10 10

输出样例:

6 10.00 5 10.00 2 9.50 4 9.00 1 8.50 7 9.00 10 10.00 3 7.00 9 7.50 8 7.50

代码实现:

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

int main() {
    int scores[10][6]; // 存储每个歌手的6个评分
    double final_scores[10]; // 存储每个歌手的最终得分
    int i, j, max, min;

    // 输入每个歌手的6个评分
    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]; // 初始化最小值为第一个评分
        for (j = 1; j < 6; j++) {
            if (scores[i][j] > max) {
                max = scores[i][j];
            }
            if (scores[i][j] < min) {
                min = scores[i][j];
            }
        }
        final_scores[i] = 0;
        for (j = 0; j < 6; j++) {
            if (scores[i][j] != max && scores[i][j] != min) {
                final_scores[i] += scores[i][j];
            }
        }
        final_scores[i] /= 4; // 计算平均分
    }

    // 按最终得分由高到低排序歌手
    for (i = 0; i < 9; i++) {
        for (j = i + 1; j < 10; j++) {
            if (final_scores[i] < final_scores[j]) {
                double temp = final_scores[i];
                final_scores[i] = final_scores[j];
                final_scores[j] = temp;
            }
        }
    }

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

    return 0;
}
C语言实现歌手比赛得分排名:扣除最高最低分计算平均分

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

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