lseelcome 2022-01-03 20:27 采纳率: 33.3%
浏览 20
已结题

求解答,等。非常感谢。

c语言 交换二维数组最大值最小值的行数位置,列数不改变,例如最大值a[2][1]最小值a[3][2]交换后最大值a[3][1],最小值a[2][2]。

  • 写回答

1条回答 默认 最新

  • fuill 2022-01-04 14:09
    关注

    列数不一样怎么交换行?

    img

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    
        printf("请输入N(N<=30):");
        int t[30][30]= {0};
        int N,i,j,k,sum=0;
        scanf("%d",&N);
        printf("原数组:\n");
        for(i=0; i<N; i++)
        {
            for(j=0; j<N; j++)
            {
                t[i][j]=rand()%1000;
                printf("%4d",t[i][j]);
            }
            printf("\n");
        }
        int min=t[0][0], max=t[0][0]; 
        int p1=0,p2=0,p3=0,p4=0;
         for(i=0; i<N; i++)
            for(j=0; j<N; j++)
            {
                if(max<t[i][j])
                {
                    max=t[i][j];
                    p1=i;p2=j;
                }
                   if(min>t[i][j])
                {
                    min=t[i][j];
                    p3=i;p4=j;
                }
            }
        printf("最大值t[%d][%d]:%d  最小值t[%d][%d]:%d\n",p1,p2,max,p3,p4,min);
        int tem=t[p1][p2];
        t[p1][p2]=t[p3][p4];
        t[p3][p4]=tem;
        printf("交换二最大值最小值的行数位置后:\n");
        for(i=0; i<N; i++)
        {
            for(j=0; j<N; j++)
            {
                 printf("%4d",t[i][j]);
            }
            printf("\n");
        }
            
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 1月3日