题解 | 矩阵转置
矩阵转置
https://www.nowcoder.com/practice/351b3d03e410496ab5a407b7ca3fd841
#include <iostream>
#include <vector>
using std::cin, std::cout, std::cerr;
using std::vector;
using std::endl;
int main() {
// n 行 m 列
size_t n, m;
if (!(cin >> n >> m) || n < 1 || m < 1) {
cerr << "Error: Invalid matrix size!";
return 0;
}
// 边输入边转置
vector<vector<int>> reverse_matrix(m, vector<int>(n));
int element;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
// 接收并判定数据
if (!(cin >> element)) {
cerr << "Invalid input: element!";
return 0;
}
// 列优先
reverse_matrix[j][i] = element;
}
}
for (const auto &arr : reverse_matrix) {
for (const auto &i : arr) {
cout << i << " ";
}
// 按行输出,注意换行
cout << endl;
}
}

查看12道真题和解析