如何在C语言中将一维数组转换为二维数组?
时间: 2024-12-28 22:41:44 浏览: 8
在C语言中,将一维数组转换为二维数组通常需要创建一个新的二维数组,并将一维数组的元素按照特定的方式复制到新的二维数组中。假设你有一维整型数组`arr[]`,长度为`n`,你想将其转换为一个`m * k`大小的二维数组,其中每个元素表示原数组中的一个连续块。
例如,如果你想要每行有`k`个元素,可以这样做:
```c
#include <stdio.h>
int main() {
int one_dim_arr[5] = {1, 2, 3, 4, 5}; // 假设这是你要转换的一维数组
int m = 2; // 行数
int k = 3; // 列数
int two_dim_arr[m][k]; // 新的二维数组
for (int i = 0; i < m; i++) {
for (int j = 0; j < k && i * k + j < n; j++) {
two_dim_arr[i][j] = arr[i * k + j];
}
}
// 打印转换后的二维数组
for (int i = 0; i < m; i++) {
for (int j = 0; j < k; j++) {
printf("%d ", two_dim_arr[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个例子中,一维数组`arr`的内容会被复制到`two_dim_arr`的第一个`k`个元素,然后是第二个`k`个元素,依此类推,直到所有数据都被复制完。
阅读全文