将一个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;
}