m0_73028902 2022-12-04 17:12 采纳率: 100%
浏览 20
已结题

为什么我编辑的数组成绩排列不是按照大小而是我输入的排列,好像中间打的排列的代码没用

img

img

img

  • 写回答

1条回答 默认 最新

  • 小6的跟班 2022-12-05 12:14
    关注

    是中间的排序代码有问题,if(stu[j].ly>stu[j].ly)应该改为if(stu[j].ly>stu[j+1].ly),我简单的修改了一下。

    #include <stdio.h>
    #define N 10
    struct student
    {
        int ID;
        int ly;
    };
    int main()
    {
        struct student stu[N]={{1,52},{2,92},{3,14},{4,48},{5,95},{6,0},{7,25},{8,74},{9,36},{10,59}};
        struct student t;
        int i,j;
        for(i=0;i<N-1;i++) 
        {
            for(j=0;j<N-i-1;j++)
            {
                if(stu[j].ly>stu[j+1].ly)
                {
                    t=stu[j];
                    stu[j]=stu[j+1];
                    stu[j+1]=t;
                }
            }
        }
        for(i=0;i<N;i++)
        {
            printf("学号:%d 成绩:%d\n",stu[i].ID, stu[i].ly);
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 创建了问题 12月4日

悬赏问题

  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
  • ¥15 io.jsonwebtoken.security.Keys
  • ¥15 急,ubuntu安装后no caching mode page found等
  • ¥15 联想交换机NE2580O/NE1064TO安装SONIC
  • ¥15 防火墙的混合模式配置
  • ¥15 Ubuntu不小心注销了要怎么恢复啊