将一个3行4列的二维数组中每列数组元素按从小到大的顺序排序,并输出排序后的数组

将一个3行4列的二维数组中每列数组元素按从小到大的顺序排序,并输出排序后的数组

供参考:

#include<stdio.h>
#define Row 3    //行
#define Col 4    //列
void printmatrix(int a[][Col], int row, int col) //打印输出矩阵
{
    int i, j;
    for (i = 0; i < row; i++){
        for (j = 0; j < col; j++)
        {
            printf("%5d", a[i][j]);
        }
        printf("\n");
    }
}
int main()
{
    int a[Row][Col]={44,3,6,9,12,30,2,7,32,1,8,22},row,col,k,tmp;

    printf("原矩阵为:\n");
    printmatrix(a,Row,Col);

    for(col=0;col<Col;col++)
    {
        for(row=0;row<Row-1;row++)
        {
            for(k=0;k<Row-row-1;k++)
            {
                if(a[k][col]>a[k+1][col])
                {
                    tmp = a[k][col];
                    a[k][col]=a[k+1][col];
                    a[k+1][col]=tmp;
                }
            }
        }
    }
    printf("按列从小到大排序矩阵为:\n");
    printmatrix(a,Row,Col);
    return 0;
}