C++题目: 矩阵调整

题目: 矩阵调整

题目描述

给定一个M行N列的矩阵,请将矩阵reshape成N行M列的矩阵。

输入描述

首先输入一行包含两个正整数M和N, 其中0 < M, N < 1000, M表示矩阵的行数,N表示矩阵的列数。

接下来是M行,每一行有N个数字,表示矩阵的一行。

输出描述

输出为N行,每一行有M个用空格隔开的数字,表示Reshape后矩阵的每一行。

样例输入

2 3 1 2 3 4 5 6

样例输出

1 2 3 4 5 6

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

矩阵转置,在循环嵌套语句里面,正常数组的i,j互换一下就可以了

 

void main()
{
    /*
        2、将二维数组int a[3][3]的行列转换后输出,如:
        1    2    3    输出成:    1    4    7
        4    5    6                2    5    8
        7    8    9                3    6    9
        提示:如果stu[i][j]表示第i行第j列,则转换之后应该在第j行第i列,即应该为与stu[j][i]的位置,所以循环输出j行,每行输出i列就可以    
    
    */  
    int a[3][3];
    int i,j;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
            scanf("%d",&a[i][j]);    
    }  
    printf("------------------------------------\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("%d\t",a[j][i]);    
        }    
        printf("\n");
    }
}