3.若有说明:int a[2][3]={{1,2,3}, {4, 5, 6}};现要将a的行和列的元素互换后存到另一个二维数组b中。请编写程序并输出a和b数组中的元素。
时间: 2024-10-27 20:02:47 浏览: 4
c代码-a(=5)+1-2*3/4
为了将二维数组`a`的行和列元素互换后存储到另一个二维数组`b`中,我们可以使用两个嵌套循环。这里是一个简单的C语言示例来完成这个任务:
```c
#include <stdio.h>
#define ROWS 2
#define COLS 3
void swap(int a[ROWS][COLS], int b[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
// 交换a[i][j]和b[j][i]
int temp = a[i][j];
a[i][j] = b[i][j]; // a的元素变为b的元素
b[i][j] = temp; // b的元素变为a的元素
}
}
}
int main() {
int a[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}};
int b[ROWS][COLS];
// 输出原始数组a
printf("Original array a:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
// 先将a的数据复制到b,然后交换
memcpy(b, a, sizeof(a)); // 或者逐个赋值避免深拷贝
swap(a, b);
// 输出交换后的数组b
printf("\nArray b after swapping (original elements of a):\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", b[i][j]);
}
printf("\n");
}
return 0;
}
```
当你运行这个程序,它会首先打印出原始的`a`数组,然后显示交换元素后的`b`数组。注意,这里的`memcpy`函数用于快速复制整个数组,如果你不想做深拷贝,也可以逐个赋值给`b`。
阅读全文