c用于在c中将1d数据转换为3d的代码

时间:2017-02-27 04:41:31

标签: c arrays

我在1D中有一个数组。

mutable

我需要使用C:

将其转换为表单的3D数组
data[27]=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27};

有人可以帮我这样做吗?

我尝试了以下代码。似乎不起作用:

data[3][3][3] 

1 个答案:

答案 0 :(得分:0)

你的逻辑似乎没问题。问题在于声明1D和3D阵列。

1)C

中没有byte的数据类型

2)new不是C的一部分。您无法使用new分配内存

请尝试以下更改以使代码正常工作

int main()
{

int x;
int y;
int z;
int data[] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27}; // Read 4096 bytes
int res[3][3][3];
for (x = 0 ; x < 3 ; x++) {
    for (y = 0 ; y < 3 ; y++) {
        for (z = 0 ; z < 3 ; z++) {
            res[x][y][z] = data[3*3*x + 3*y + z];
        }
    }
}
printf("Printing the 3D matrix\n");
//run the loop till maximum value of x, y & z
for (x = 0 ; x < 3 ; x++) {
    for (y = 0 ; y < 3 ; y++) {
        for (z = 0 ; z < 3 ; z++) {
            printf("%d\t",res[x][y][z]);
            printf("\n");
        } 
    }
}
return 0;
}