站外题求解
  • 板块学术版
  • 楼主GR2012
  • 当前回复3
  • 已保存回复5
  • 发布时间2024/8/8 10:57
  • 上次更新2024/8/8 11:35:13
查看原帖
站外题求解
1234138
GR2012楼主2024/8/8 10:57

二维数组转置

由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;
}
2024/8/8 10:57
加载中...