键盘输入4*5的矩阵,按列排序并输出

img


代码错了,不知道什么原因,后两列顺序一直不对

include <stdio.h>

int main(void)
{
int a[4][5];
int i,j,k,t;
for(i=0;i < 4;++i){
for(j=0;j < 5;++j)
scanf("%d ",&a[i][j]);
}
for(j=0;j < 5;++j){
for(k=0;k < 3;++k){
if(a[k][j]>=a[k+1][j])
{
t = a[k][j];
a[k][j] = a[k+1][j];
a[k+1][j] = t;
}
}
}
for(i=0;i < 4;++i)
{
for(j=0;j < 5;++j)
{
if(j==0) printf("%d",a[i][j]);
else printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}

img


for(int jk=0;jk<5;jk++){
for(j=0;j < 5;++j){
for(k=0;k < 3;++k){
if(a[k][j]>=a[k+1][j])
{
t = a[k][j];
a[k][j] = a[k+1][j];
a[k+1][j] = t;
}
}
}
}
你的冒泡只排了一次

行和列for循环反过来