输入N*N的矩阵,输出它的转置矩阵。 输入 第一行为整数N(1≤N≤100)。 接着是一个N*N个整数组成的矩阵。 输出 转置矩阵。 样例输入 2 1 2 3 4 样例输出 1 3 2 4 用c++生成此代码
时间: 2024-12-16 09:14:29 浏览: 9
在C++中,你可以通过嵌套循环来实现矩阵转置的功能。下面是一个简单的示例代码:
```cpp
#include <iostream>
using namespace std;
// 定义矩阵的结构体
struct Matrix {
int rows, cols;
int data[100][100];
};
// 函数来交换矩阵的行和列
void transpose(Matrix& matrix) {
matrix.rows = matrix.cols; // 设置新矩阵的行数等于旧矩阵的列数
matrix.cols = matrix.rows; // 设置新矩阵的列数等于旧矩阵的行数
for (int i = 0; i < matrix.rows; ++i) { // 遍历新矩阵的每一行
for (int j = i; j < matrix.cols; ++j) { // 从当前行的下一个元素开始遍历到同一列的最后一个元素
swap(matrix.data[i][j], matrix.data[j][i]); // 交换两个位置的元素
}
}
}
// 主函数用于读取输入并打印转置后的矩阵
int main() {
int N;
cin >> N;
Matrix originalMatrix;
originalMatrix.rows = N;
originalMatrix.cols = N;
// 读取原矩阵的数据
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
cin >> originalMatrix.data[i][j];
}
}
transpose(originalMatrix); // 转置矩阵
cout << "转置后的矩阵:" << endl;
// 打印转置矩阵
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
cout << originalMatrix.data[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
阅读全文