题目:有一个n行m列(0<n<20,0<m<20)的整型二维数组b,编写程序对二维数组b[n][m]先按列降序排序,再按行降序排序。
输入:4 5
21 3 5 98 10
44 12 1 12 8
67 61 45 67 17
35 36 78 90 19
输出:
98 78 67 61 19
90 45 44 36 17
67 35 12 10 5
21 12 8 3 1
我的答案好像非常有问题,帮忙看看,
#include <stdio.h>
int main()
{
int a[20][20],i,j,m,n,t,z;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
for(j=0;j<m;j++)
for(i=0;i<n-1;i++)
for(z=0;z<n-1-i;z++)
if(a[z][j]<a[z+1][j])
{
t=a[z][j];
a[z][j]=a[z+1][z];
a[z+1][j]=t;
}
for(i=0;i<n;i++)
for(j=0;j<m-1;j++)
for(z=0;z<m-1-j;z++)
if(a[i][z]<a[i][z+1])
{
t=a[i][z];
a[i][z]=a[i][z+1];
a[i][z+1]=t;
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}