• 冒泡法排序哪错了,明明和书上一样呀


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 2401_83429359 2024-06-16 10:16 采纳率: 0% 浏览 5 首页/ 编程语言 / 冒泡法排序哪错了,明明和书上一样呀 c语言 qwert与io怕是对方过后就哭了自行车VB你们去玩儿我收拾收拾啊赌博宿舍个九点半嗯就是V 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 加载中... 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    1条回答 默认 最新

    • 阿里嘎多学长 2024-06-16 10:31
      关注

      以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


      根据您提供的代码截图和描述,我注意到了代码中存在几个错误,这些错误可能导致冒泡排序算法不能正确执行。下面是代码中的错误和相应的修正方法:

      1. 数组定义错误: 原始代码中的数组定义int salary[6]={1,5,9,3,6,7}:存在语法错误,冒号:应该被替换为分号;

      2. 赋值语句错误: 在冒泡排序的内部循环中,交换两个元素的值时,赋值语句写错了。原始代码为salary[jj=salary[j+1];,这里应该是salary[j] = salary[j+1];

      3. 变量名错误: 在上述错误中,salary[jj应该是salary[j]

      4. 数组索引越界: 冒泡排序的内部循环条件应该是j < 5 - i,这样在每次外层循环迭代时,内部循环都会减少一次迭代次数,以避免比较已经排序好的部分。但在您的代码中,内循环的条件是j < 5 - i,这在最后一次迭代时会导致数组索引越界,因为j可以等于5,而数组salary的索引是从05。正确的条件应该是j < 4 - i

      5. 缺少输入和输出的格式化: 在printf函数中,数组元素之间应该有一个分隔符,以便于区分不同的元素。例如,可以使用逗号和空格"%d, "

      修正后的冒泡排序代码如下:

      #include 
      
      int main() {
          int salary[6] = {1, 5, 9, 3, 6, 7};
          int i, j, t;
      
          for(i = 0; i < 5; i++) {
              scanf("%d", &salary[i]);
          }
      
          for(i = 0; i < 5; i++) {
              for(j = 0; j < 4 - i; j++) { // 修正索引越界问题
                  if(salary[j] > salary[j + 1]) {
                      t = salary[j];
                      salary[j] = salary[j + 1];
                      salary[j + 1] = t;
                  }
              }
          }
      
          for(i = 0; i < 6; i++) {
              printf("%d, ", salary[i]); // 格式化输出
          }
      
          return 0;
      }
      

      关于程序执行后的结果,如果代码正确运行,它将按照升序对salary数组中的元素进行排序。根据您提供的第二张截图,程序似乎在执行后立即退出,并且没有显示任何排序后的结果。这可能是因为程序中存在逻辑错误或者输入没有正确处理。

      至于参考资料,您可以查看在线的C语言教程或者冒泡排序算法的维基百科页面,它们通常会提供详细的算法解释和示例代码。例如,维基百科的冒泡排序页面是一个很好的起点:Bubble sort - Wikipedia

      展开全部

      评论 编辑记录
      编辑
      预览

      报告相同问题?

    • 相关阅读:
      cubeIDE开发,基于已有的STM32CubeMX (.ioc)创建工程文件
      大端字节和小端字节
      在window环境下安装numpy模块(包)
      让阿里P8都为之着迷的分布式核心原理解析到底讲了啥?看完我惊了
      剧院建筑三维可视化综合管控平台提高安全管理效率
      Java Pattern.split()方法具有什么功能呢?
      供应点击试剂DBCO-S-S-NHS ester,DBCO-S-S-SE,CAS:1435934-53-4
      学习网络编程No.7【应用层之序列化和反序列化】
      Qt 生成应用程序(二)软件多图标与文件操作
      工具类xxxUtil从application.properties中读取参数
    • 原文地址:https://ask.csdn.net/questions/8119219