Moonlight....... 2023-12-29 10:28 采纳率: 100%
浏览 35
已结题

编程模拟跳水比赛的评分系统

题目:
共有5位选手参与比赛。规则如下:共有7名评委对每位选手打分,去掉最高分和最低分,并计算其他5个评委的总分作为选手的成绩。要求定义结构体存储选手的姓名、编号、国籍,以及所有7位评委的评分以及最后的评分等信息,然后输出第一名、第二名、第三名选手的姓名、编号、代表队、国籍、以及最后得分。
编程要求:
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输入:
5位参赛选手的姓名、编号、国籍,以及所有7位评委的评分
输出:
第一名、第二名、第三名选手的姓名、编号、代表队、国籍、以及最后得分

img

img

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2023-12-29 11:23
    关注

    供参考:

    #include <stdio.h>
    #define N 5
    struct simulate {
        char name[10];
        char number[10];
        char nationality[10];
        float score;
        float grade[7];
    }sim[5];
    int main()
    {
        int i, j, f;
        float x = 0;
        float max, min;
        struct simulate temp1;
        /*********Begin*********/
        //录入5位选手信息以及评委评分
        for (i = 0; i < 5; i++) {
            scanf("%s %s %s", sim[i].name, sim[i].number, sim[i].nationality);
            for (j = 0, sim[i].score = 0; j < 7; j++) {
                scanf("%f", &sim[i].grade[j]);
                if (j == 0 || max < sim[i].grade[j]) max = sim[i].grade[j];
                if (j == 0 || min > sim[i].grade[j]) min = sim[i].grade[j];
                sim[i].score += sim[i].grade[j];
            }
            sim[i].score -= max + min;
        }
        /*********End*********/
    
        /*********Begin*********/
        //按照题意计算每位选手最终得分,最后输出前三名选手信息
        for (i = 0; i < 4; i++)
        {
            for (j = 0; j < 4 - i; j++)
            {
                if (sim[j].score < sim[j + 1].score)
                {
                    temp1 = sim[j];
                    sim[j] = sim[j + 1];
                    sim[j + 1] = temp1;
                }
            }
        }
        for (i = 0; i < 3; i++)
            printf(i ? "\n%d.%s,%s,%s,%.2f" : "%d.%s,%s,%s,%.2f", 
                i + 1, sim[i].name, sim[i].number, sim[i].nationality, sim[i].score);
        /*********End*********/
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 创建了问题 12月29日