用C++写一个函数,使给定的一个二维数组(3*3)转置,即行列互换
时间: 2024-11-22 13:45:34 浏览: 16
在C++中,你可以创建一个函数来完成二维数组的转置。这里是一个简单的例子,假设我们有一个`int`类型的3x3二维数组:
```cpp
#include <iostream>
// 定义一个3x3的二维数组模板
template<typename T, size_t ROWS, size_t COLS>
void transpose(T (&matrix)[ROWS][COLS]) {
// 新建一个临时的二维数组用于存储转置后的结果
T transposed[COLS][ROWS];
// 遍历原始矩阵进行转置
for (size_t i = 0; i < ROWS; ++i) {
for (size_t j = 0; j < COLS; ++j) {
transposed[j][i] = matrix[i][j]; // 存储元素到转置矩阵对应位置
}
}
// 打印转置后的矩阵
for (size_t i = 0; i < COLS; ++i) {
for (size_t j = 0; j < ROWS; ++j) {
std::cout << transposed[i][j] << " ";
}
std::cout << "\n";
}
}
// 测试函数
int main() {
int originalMatrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
transpose(originalMatrix);
return 0;
}
```
在这个例子中,`transpose`函数接受一个引用到3x3的二维数组,并通过两个嵌套循环将元素复制到新矩阵中。注意,这个函数会修改输入的数组,如果你不想改变原数组,需要复制后再转置。
阅读全文