在C語言中,可以通過循環(huán)遍歷二維數(shù)組,將每個元素逐個存儲到一維數(shù)組中來實現(xiàn)二維數(shù)組轉一維數(shù)組的操作。具體實現(xiàn)如下:
#include <stdio.h>
void convert2DTo1D(int arr[][3], int row, int col, int *result) {
int k = 0;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
result[k++] = arr[i][j];
}
}
}
int main() {
int arr2D[2][3] = {{1, 2, 3}, {4, 5, 6}};
int row = sizeof(arr2D) / sizeof(arr2D[0]);
int col = sizeof(arr2D[0]) / sizeof(arr2D[0][0]);
int size = row * col;
int arr1D[size];
convert2DTo1D(arr2D, row, col, arr1D);
for (int i = 0; i < size; i++) {
printf("%d ", arr1D[i]);
}
printf("\n");
return 0;
}
在上面的代碼中,convert2DTo1D
函數(shù)接收一個二維數(shù)組、行數(shù)、列數(shù)和一個指向一維數(shù)組的指針作為參數(shù)。函數(shù)內(nèi)部使用兩個嵌套的循環(huán)來遍歷二維數(shù)組,并將每個元素依次存儲到一維數(shù)組中。
在main
函數(shù)中,先計算出二維數(shù)組的行數(shù)和列數(shù),然后根據(jù)行數(shù)和列數(shù)計算出一維數(shù)組的大小。然后聲明一個一維數(shù)組,并調(diào)用convert2DTo1D
函數(shù)將二維數(shù)組轉換為一維數(shù)組。最后,通過循環(huán)遍歷一維數(shù)組并打印結果。