c++指针写一函数,将一个3*3的整形矩阵转置
时间: 2024-12-14 08:18:38 浏览: 3
在C++中,你可以编写一个函数来对3x3的整型矩阵进行转置。这里是一个简单的示例,该函数接受一个指向3x3矩阵二维数组的指针,并返回一个新的转置后的矩阵:
```cpp
#include <iostream>
// 定义3x3矩阵结构
struct Matrix3x3 {
int data[3][3];
};
// 函数声明
Matrix3x3 transpose(const Matrix3x3& matrix);
// 主函数
void printMatrix(const Matrix3x3& matrix) {
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
std::cout << matrix.data[i][j] << " ";
}
std::cout << "\n";
}
}
// 转置函数实现
Matrix3x3 transpose(const Matrix3x3& input) {
Matrix3x3 result;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
result.data[j][i] = input.data[i][j]; // 交换行和列
}
}
return result;
}
int main() {
// 初始化一个3x3矩阵
Matrix3x3 original = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::cout << "Original Matrix:\n";
printMatrix(original);
// 转置并打印结果
Matrix3x3 transposed = transpose(original);
std::cout << "Transposed Matrix:\n";
printMatrix(transposed);
return 0;
}
```
在这个例子中,`transpose`函数接收一个`const`引用,这样我们可以在函数内部修改输入矩阵,而不会改变原地数据。然后通过两个嵌套循环,实现了矩阵的行和列互换。
阅读全文