星野さくら 2021-11-28 11:00 采纳率: 66.7%
浏览 116
已结题

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

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

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-11-28 12:40
    关注

    供参考:

    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月20日
  • 已采纳回答 12月12日
  • 创建了问题 11月28日