二维数组转置
由m * n个数排列成的m行n列的数表称为m行n列的矩阵,简称m * n矩阵, 矩阵的转置可以理解成将原矩阵的行变成转置后矩阵的列,将原矩阵的列变成转置后矩阵的行。
输入一个n行m列的数组,输出他的转置,具体来说: 输出的第i行第j个数字,应是输入的第j行第i个数字。 1<=n<=100
1<=m<=100
1<=a[i][j]<=1000
输入数据
第一行两个整数n,m表示数组的行数和列数
接下来几行,每行m个整数表示数组内容。
输出数据
第一行先输出m,n,
接下来输出转置的结果,共m行n列。
其中第i行第j个数字,应是输入的第j行第i个数字,
输入样例
3 2
1 2
3 4
5 6
输出样例
2 3
1 3 5
2 4 6
求解
#include <bits/stdc++.h>
using namespace std;
int a[20001][20001],n,m;
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++) cin>>a[i][j];
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++) cout<<a[j][i]<<" ";
cout<<endl;
}
return 0;
}