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

#define N 10
#define M 6

void input(int scores[][M]);
void output(int scores[][M], float final_scores[]);
void sort(float final_scores[], int sorted_indexes[]);

int main()
{
    int scores[N][M];
    float final_scores[N];
    int sorted_indexes[N];

    input(scores);
    output(scores, final_scores);
    sort(final_scores, sorted_indexes);

    printf("rank	ID	score\n");
    for (int i = 0; i < N; i++)
        printf("%d	%d	%.2f\n", i + 1, sorted_indexes[i] + 1, final_scores[sorted_indexes[i]]);

    return 0;
}

void input(int scores[][M])
{
    for (int i = 0; i < N; i++)
    {
        printf("input scores of singer %d: ", i + 1);
        for (int j = 0; j < M; j++)
            scanf("%d", &scores[i][j]);
    }
}

void output(int scores[][M], float final_scores[])
{
    for (int i = 0; i < N; i++)
    {
        int max_index = 0, min_index = 0;
        float sum = scores[i][0];
        for (int j = 1; j < M; j++)
        {
            sum += scores[i][j];
            if (scores[i][j] > scores[i][max_index])
                max_index = j;
            if (scores[i][j] < scores[i][min_index])
                min_index = j;
        }
        sum -= scores[i][max_index];
        sum -= scores[i][min_index];
        final_scores[i] = sum / (M - 2);
    }
}

void sort(float final_scores[], int sorted_indexes[])
{
    for (int i = 0; i < N; i++)
        sorted_indexes[i] = i;

    for (int i = 0; i < N - 1; i++)
        for (int j = i + 1; j < N; j++)
            if (final_scores[sorted_indexes[i]] < final_scores[sorted_indexes[j]])
            {
                int temp = sorted_indexes[i];
                sorted_indexes[i] = sorted_indexes[j];
                sorted_indexes[j] = temp;
            }
}
C语言歌咏比赛得分计算程序:扣除最高最低分求平均

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

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