c语言二维数组冒泡排序

  • 将二维数组看成一维数组进行冒泡排序
  • int (*p)[5]; p=arr 定义行指针,此时输出是 *(*(p+i)+j)
  • int *p; p=arr[0] 定义列指针,此时输出是p<arr[0]+15,p++,*p
#include<stdio.h>

int main()
{
    int i=0;
    int j=0;
    int tmp;
    int arr[3][5]= {99,98,97,96,95,94,93,92,91,90,89,87,86,84,21};
    int *p=arr[0];//定义列指针
    //行指针的定义:int (*p)[5];p=arr;
    int max=arr[0][0];
    int min=arr[0][0];
    for(i=0; i<3*5; i++)//将二维数组看成一维数组
        for(j=0; j<3*5-i; j++)
        {   if(p[j]>p[j+1])//冒泡排序升序
            {   tmp=p[j];
                p[j]=p[j+1];
                p[j+1]=tmp;
            }
        }
    printf("最小值为%d,arr[0][0]\n",arr[0][0]);
    printf("最大值为%d,arr[2][4]",arr[3-1][5-1]);
}
上一篇:力扣5978——统计追加字母可以获得的单词数(哈希表、状态压缩)


下一篇:PAT B1008