二维数组数字比较,从小到大依次输出

img

img


想通过for循环的镶嵌实现二维数组的循环比较,将二维数组中每个元素依次运用起泡法排序,然后从小到大输出,但是目前这个程序运行后不是从小到大,不知道是哪里出现问题了,求帮助

你要按冒泡排序,那就把它当个一维数组进行排序,外层写对了是从0到11,内层也应该是基于0-11来写的,你为什么写个i<2,这是要干什么
你这样搞永远是和自己这一个维度的数进行比较,上下两排之间不比较呀

希望能帮到你


//冒泡排序
void sort(int arr[], int size)
{
    int j,i,temp;
    for (i = 0; i < size-1;i ++)
    {
        int count = 0;
        for (j = 0; j < size-1 - i; j++)//size-1-i是因为每一趟就会少一个数比较
        {
            if (arr[j] > arr[j+1])//这是升序排法,前一个数和后一个数比较,如果前数大则与后一个数换位置
            {
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
                count = 1;
                
            }
        }
        if (count == 0)            //如果某一趟没有交换位置,则说明已经排好序,直接退出循环
                break;    
    }
}