C++将一个二维数组行和列交换,存到 另一个二维数组中
时间: 2024-10-30 22:05:48 浏览: 16
二维数组旋转.zip
在C++中,要将一个二维数组的行和列交换并存储到另一个二维数组中,通常需要借助两个辅助变量以及遍历原数组的方式来实现。这里是一个简单的例子:
```cpp
#include <iostream>
void swapRowsColumns(int** arr1, int** arr2, int rows, int cols) {
// 检查输入数组的有效性
if (arr1 == nullptr || arr2 == nullptr || rows <= 0 || cols <= 0)
return;
for (int i = 0; i < rows; ++i) { // 遍历原数组的行
for (int j = 0; j < cols; ++j) { // 遍历原数组的列
// 保存当前元素值
int temp = arr1[i][j];
// 将元素从原位置移到临时变量
arr1[i][j] = arr2[j][i]; // 行变列
// 将临时变量的值放入新的位置
arr2[j][i] = temp; // 列变行
}
}
}
int main() {
// 假设我们有两组数据分别表示为arr1和arr2
int arr1[4][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}};
int arr2[4][4];
// 调用函数进行行列交换
swapRowsColumns(arr1, arr2, 4, 4);
// 打印交换后的结果
for (int i = 0; i < 4; ++i) {
for (int j = 0; j < 4; ++j)
std::cout << arr2[i][j] << " ";
std::cout << "\n";
}
return 0;
}
阅读全文