使用C语言将一个三维数组变一维数组
时间: 2024-10-09 17:01:18 浏览: 43
C语言的三维数组的应用.doc
在C语言中,将一个三维数组转换成一维数组,实质上就是扁平化数组。假设我们有一个 `int arr[3][3][3]` 的三维数组,你可以通过遍历的方式来创建一个新的一维数组。以下是一个简单的示例:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void flattenArray(int arr[3][3][3], int flatArr[], int totalSize) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
for (int k = 0; k < 3; k++) {
flatArr[i*COLS*3 + j*3 + k] = arr[i][j][k];
}
}
}
}
int main() {
int threeDArray[ROWS][COLS][3] = { /* 初始化你的三维数组 */ };
int oneDArray[ROWS*COLS*3]; // 新的一维数组,大小为原三维数组元素总数
int size = sizeof(threeDArray)/sizeof(threeDArray[0][0][0]);
flattenArray(threeDArray, oneDArray, size);
printf("Flattened array: ");
for (int i = 0; i < size; i++) {
printf("%d ", oneDArray[i]);
}
return 0;
}
```
在这个例子中,`flattenArray` 函数负责将三维数组元素逐一复制到一维数组 `flatArr` 中,并按照一定的顺序排列。`main` 函数中先初始化了三维数组和一维数组,然后计算出需要的总大小并调用 `flattenArray`。
阅读全文