C语言输入一个m行n列的矩阵,接着先对该矩阵中每一列元素进行降序排序,然后输出排序后的矩阵。

输入一个m行n列的矩阵,接着先对该矩阵中每一列元素进行降序排序,然后输出排序后的矩阵。

img

供参考:

#include <stdio.h>
#define M 21
#define N 21
int main()
{
    int a[M][N] = { 0 }, tmp;
    int m, n, i, j, k;

    scanf("%d %d", &m, &n); //输入行列数

    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++)
            scanf("%d", &a[i][j]); //输入矩阵

    for (j = 0; j < n; j++) {  //矩阵每一列元素按降序排序
        for (i = 0; i < m - 1; i++) {
            for (k = 0; k < m - 1 - i; k++)
                if (a[k][j] > a[k + 1][j])
                    tmp = a[k][j], a[k][j] = a[k + 1][j], a[k + 1][j] = tmp;
        }
    }

    for (i = 0; i < m; i++) {    //输出矩阵
        for (j = 0; j < n; j++) {
            printf("%4d", a[i][j]);
        }
        printf("\n");
    }
    return 0;
}