天生我才の 2022-01-24 12:40 采纳率: 100%
浏览 19
已结题

数组实现冒泡升序与函数调用结合出现问题

问题遇到的现象和发生背景

想用一个函数实现一个数组的冒泡升序,但看不出来哪里出了问题

问题相关代码,请勿粘贴截图
#include<iostream>
using namespace std;
void bubbleSort(int i, int k)
{
    int arr[] = { 9,4,8,1,7,6,5,3,2,0 };
    for (int i = 0; i < 10; i++)
    {
        for (int k = 0; k < 10 - i - 1; k++)
        {
            int temp = 0;
            if (arr[k] > arr[k + 1])
            {
                temp = arr[k];
                arr[k] = arr[k + 1];
                arr[k + 1] = temp;
            }
        }
    }
}
int main()
{
    int arr[] = { 9,4,8,1,7,6,5,3,2,0 };
    int i = 0, k = 0;
    bubbleSort(i, k);
    for (int j = 0; j < 10; j++)
    {
        cout << arr[j] << endl;
    }
    system("pause");
    return 0;
}

运行结果及报错内容

结果就是还是原来数组,并没有升序排列

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-01-24 13:05
    关注

    函数里排序的是函数里的数组,不是main里的数组,虽然数组名称一样,但是两个不同的数组。
    需要将main中的数组作为参数传递到函数

    #include<iostream>
    using namespace std;
    void bubbleSort(int *arr,int n)
    {
        for (int i = 0; i < n-1; i++)
        {
            for (int j = 0; j < n - i - 1; j++)
            {
                int temp = 0;
                if (arr[j] > arr[j + 1])
                {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
    int main()
    {
        int arr[] = { 9,4,8,1,7,6,5,3,2,0 };
        bubbleSort(arr,10);
        for (int j = 0; j < 10; j++)
        {
            cout << arr[j] <<" " << endl;
        }
        system("pause");
        return 0;
    }
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月1日
  • 已采纳回答 1月24日
  • 创建了问题 1月24日

悬赏问题

  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改