功能说明:从键盘输入5行6列整型二维数组的各元素,然后将数组各列元素分别按升序排序,再按行输出数组的各元素。


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

怎么实现题目要求的那样,我这为什么原样输出了

改动处见注释,供参考:

#include<stdio.h>
int main()
{
    int a[5][6],i,j,k,t,count=0;
    for(i=0;i<5;i++)
    {
        for(j=0;j<6;j++)
            scanf("%d",&a[i][j]);
    }
    for(j=0;j<6;j++)
    {
        for(i=0;i<4;i++)     //(i=1;i<5;i++) 修改
            for(k=0;k<4-i;k++)//(k=0;k<5;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;  //a[k][j]=t; 修改
                }
    }//修改
    for(i=0;i<5;i++)
    {
        for(j=0;j<6;j++)
            printf("%4d",a[i][j]);
        printf("\n");
    }
    return 0;
}