时间在哪里853 2022-11-12 20:06 采纳率: 82.4%
浏览 55
已结题

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


#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=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;
}

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

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-11-12 21:19
    关注

    改动处见注释,供参考:

    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月24日
  • 已采纳回答 11月16日
  • 创建了问题 11月12日