编写函数,将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中
时间: 2024-03-16 14:45:32 浏览: 109
C语言训练程序
好的,以下是 C 语言的代码实现:
```c
#include <stdio.h>
void transfer_array(int arr[][N], int m, int n, int result[])
{
int index = 0;
for (int j = 0; j < n; j++)
{
for (int i = 0; i < m; i++)
{
result[index] = arr[i][j];
index++;
}
}
// 打印转换后的一维数组
for (int i = 0; i < m * n; i++)
{
printf("%d ", result[i]);
}
printf("\n");
}
int main()
{
int arr[M][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12}};
int result[M * N];
transfer_array(arr, M, N, result);
return 0;
}
```
函数接收四个参数:原二维数组 `arr`,数组的行数 `m`,数组的列数 `n` 和转换后的一维数组 `result`。函数使用两重循环,先遍历列,再遍历行,将每个元素依次放入一维数组中。最后打印转换后的一维数组。
例如,如果要将一个 `4x3` 的二维数组:
```
1 2 3
4 5 6
7 8 9
10 11 12
```
转换成一维数组,可以这样调用函数:
```c
transfer_array(arr, M, N, result);
```
输出结果为:
```
1 4 7 10 2 5 8 11 3 6 9 12
```
阅读全文