输入一个m行n列的矩阵,接着先对该矩阵中每一列元素进行降序排序,然后输出排序后的矩阵。
供参考:
#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;
}