c语言将一个二维数组(3行2列)行和列的元素互换,存到另一个二维数组中
时间: 2024-10-20 11:18:51 浏览: 41
在C语言中,交换两个二维数组(3行2列)的行和列元素通常需要两步操作:首先遍历原数组并把数据复制到临时变量,然后使用这些临时变量填充目标数组。由于数组在内存中是连续存储的,我们可以利用矩阵的对角线性质来简化这个过程。
假设我们有两个这样的二维数组`arr1`和`arr2`:
```c
int arr1[3][2] = {
{1, 2},
{3, 4},
{5, 6}
};
int arr2[3][2];
```
以下是实现这一功能的示例代码:
```c
#include <stdio.h>
void swapRowsAndCols(int src[3][2], int dst[3][2]) {
// 遍历原数组,复制行元素到临时数组 tempRow
int tempRow[2];
for (int i = 0; i < 3; ++i) {
tempRow[0] = src[i][0]; // 保存当前行的第一个元素
tempRow[1] = src[i][1]; // 保存当前行的第二个元素
// 将元素放入目标数组的对应列上
dst[i][0] = src[i][1]; // 第一列放行元素
dst[i][1] = tempRow[0]; // 第二列放保存的行元素
}
}
// 测试函数
int main() {
// 先初始化arr2
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 2; ++j) {
arr2[i][j] = 0;
}
}
// 调用swapRowsAndCols函数
swapRowsAndCols(arr1, arr2);
// 输出结果
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 2; ++j) {
printf("%d ", arr2[i][j]);
}
printf("\n");
}
return 0;
}
```
运行上述代码后,`arr2`的值将会是:
```
2 1
4 3
6 5
```
阅读全文