鱼C论坛

 找回密码
 立即注册
查看: 2441|回复: 3

[已解决]冒泡排序代码哪里错了

[复制链接]
发表于 2023-10-15 18:49:28 | 显示全部楼层
你好,冒泡排序的问题在于代码中的一个分号:

[/code]
if(arr[j]>arr[j+1]);
[/code]

这里多了一个分号,导致语句不起作用,实际上这个 if 语句后面的花括号中的内容永远不会被执行。正确的代码应该是这样的:

[/code]
if (arr[j] > arr[j+1]) {
    int temp = arr[j];
    arr[j] = arr[j+1];
    arr[j+1] = temp;
}
[/code]

此外,int i 这个变量在代码中没有使用,可以将其删除。

修改后的正确代码如下:
  1. #include<iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.     int arr[] = {4,2,8,9,3,5,7};
  6.     cout << "排序前:";
  7.     for(int i=0; i<=6; i++)
  8.     {
  9.         cout << arr[i] << " ";
  10.     }
  11.     cout << endl;
  12.     for(int k=0; k<7-1; k++)
  13.     {
  14.         for(int j=0; j<7-1-k; j++)
  15.         {
  16.             if(arr[j] > arr[j+1]) {
  17.                 int temp = arr[j];
  18.                 arr[j] = arr[j+1];
  19.                 arr[j+1] = temp;
  20.             }
  21.         }
  22.     }
  23.     cout << "排序后:";
  24.     for(int i=0; i<=6; i++)
  25.     {
  26.         cout << arr[i] << " ";
  27.     }
  28.     cout << endl;
  29.     return 0;
  30. }
复制代码

希望能够帮助你解决问题,如果你还有其他问题,可以继续提问。

球一个最佳答案谢谢啦!这对我非常重要!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-21 03:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表