矩阵转置
描述
输入一个n行m列的矩阵A,输出它的转置矩阵B。
输入
第一行包含两个整数n和m,表示矩阵A的行数和列数(1≤n≤100,1≤m≤100)。接下来n行,每行m个整数,表示矩阵A的元素。相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间。
输出
m行,每行n个整数,为矩阵A转置后的矩阵B。相邻两个整数之间用单个空格隔开。
输入样例 1
3 3 1 2 3 4 5 6 7 8 9
输出样例 1
1 4 7 2 5 8 3 6 9
输入样例 2
2 3 1 2 3 4 5 6
输出样例 2
1 4 2 5 3 6
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<vector<int>> matrix(n, vector<int>(m));
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> matrix[i][j];
vector<vector<int>> transposed(m, vector<int>(n));
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
transposed[i][j] = matrix[j][i];
}
}
for (const auto& row : transposed) {
for (const auto& e : row) {
cout << e << " ";
}
cout << endl;
}
return 0;
}