2301_79823219 2023-10-07 20:05 采纳率: 100%
浏览 1
已结题

C语言冒泡排序出错,,

为什么我这个冒泡排序结果是错误的,求问。


#include <stdio.h>

int main(){
    int a[8]={1,3,5,7,9,2,4,6};
    int t;
    for(int i=1;i<8;i++) {
    for(int j=0;j<7-i;j++) {
    if(a[j]>a[j+1])
    {
     t=a[j];
     a[j]=a[j+1];
     a[j+1]=t;}
   }
    for(int k = 0;k < 8;k++) {
      printf("%d",a[k]);
    }

    return 0;
  }}
  • 写回答

2条回答 默认 最新

  • 摆烂的程序员阿轩. 2023-10-07 20:06
    关注

    参考gpt
    您的代码有误,应该将最后一个for循环放在外层循环之后,否则每次内层循环后就输出一次结果,无法看出完整排序后的结果。另外,内层循环应该是小于等于7-i,否则最后一个数不会被比较。修改后的代码如下:

    #include <stdio.h>
    
    int main(){
        int a[8]={1,3,5,7,9,2,4,6};
        int t;
        for(int i=1;i<8;i++) {
            for(int j=0;j<=7-i;j++) {
                if(a[j]>a[j+1])
                {
                    t=a[j];
                    a[j]=a[j+1];
                    a[j+1]=t;
                }
            }
        }
        for(int k = 0;k < 8;k++) {
            printf("%d",a[k]);
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月15日
  • 已采纳回答 10月7日
  • 创建了问题 10月7日

悬赏问题

  • ¥15 mysql中时间处理问题
  • ¥20 讲解此音频放大电路原理及关键部分
  • ¥15 rtsp 转 m3u8 执行后卡在Decoding VUI
  • ¥20 微信小程序转发链接问题,已禁止转发仍能转发的场景
  • ¥15 关于#硬件架构#的问题:根据开片的IC来判断是哪一款
  • ¥15 matlab simulink
  • ¥15 rtos搭建sip协议开发包
  • ¥100 TM4C1290NCPDT 在线调试
  • ¥15 window系统获取某进程打开的文件路径
  • ¥15 bootstrap 表格不对齐,不对齐