风落平川 2023-05-16 18:04 采纳率: 96.7%
浏览 34
已结题

C语言平均成绩排序问题

已知5个学生4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生的成绩记录排序(成绩最高的学生排在数组最前面的行,成绩最低的学生排在数组最后面的行)

  • 写回答

1条回答 默认 最新

  • 感谢地心引力 嵌入式领域优质创作者 2023-05-16 18:30
    关注
    
    #include <stdio.h>
    #include <stdlib.h>
    
    struct student {
        char name[50];
        float grades[4];
        float average;
    };
    
    void sort(struct student *students, int n) {
        int i, j;
        struct student temp;
    
        for (i = 0; i < n - 1; i++) {
            for (j = 0; j < n - i - 1; j++) {
                if (students[j].average < students[j + 1].average) {
                    temp = students[j];
                    students[j] = students[j + 1];
                    students[j + 1] = temp;
                }
            }
        }
    }
    
    int main() {
        int i, j;
        struct student students[5];
    
        for (i = 0; i < 5; i++) {
            printf("请输入第%d个学生的姓名:", i + 1);
            scanf("%s", students[i].name);
    
            for (j = 0; j < 4; j++) {
                printf("请输入第%d个学生的第%d门课程成绩:", i + 1, j + 1);
                scanf("%f", &students[i].grades[j]);
                students[i].average += students[i].grades[j];
            }
    
            students[i].average /= 4;
        }
    
        sort(students, 5);
    
        printf("排序后的学生信息:\n");
    
        for (i = 0; i < 5; i++) {
            printf("%d. %s 平均成绩:%.2f\n", i + 1, students[i].name, students[i].average);
        }
    
        return EXIT_SUCCESS;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月8日
  • 已采纳回答 8月31日
  • 创建了问题 5月16日

悬赏问题

  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题