Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 存储数组的子集_C_Arrays_Subset - Fatal编程技术网

C 存储数组的子集

C 存储数组的子集,c,arrays,subset,C,Arrays,Subset,该程序正在“计算”阵列源的所有子集。我需要将结果值存储在另一个名为polje的2D字段中。如果我只是使用printf(“%d%d%d”,source[I][0],source[I][1],source[I][2])代码工作正常,但当它试图将所有内容复制到结果字段中时,某些操作失败。我想我在数组polje的索引中出错了 但事实是: 0 3 5 3 4 2 3 4 2 0 0 0 *0 0 0* 0 0 0 0 0 0 0 0 0 我想你只是有一个逻辑错误。循环的骨架是: currentSubs

该程序正在“计算”阵列源的所有子集。我需要将结果值存储在另一个名为polje的2D字段中。如果我只是使用printf(“%d%d%d”,source[I][0],source[I][1],source[I][2])代码工作正常,但当它试图将所有内容复制到结果字段中时,某些操作失败。我想我在数组polje的索引中出错了

但事实是:

0 3 5
3 4 2
3 4 2
0 0 0
*0 0 0* 
0 0 0
0 0 0
0 0 0

我想你只是有一个逻辑错误。循环的骨架是:

currentSubset = 3;
while ( currentSubset )
{
// ...
    polje[currentSubset][...] = ...;
// ...
    currentSubset--;
}

因此,除了前三行之外,您永远不会写入任何行。

tmp
是一个只有两位的位掩码,因此内部循环应该是(i=0;i<2;i++)的


另外,进入
polje
数组的正确索引是
polje[currentSubset*2+i][0]
,因为
polje
中的每个
子集
占用两个空格,
i
为0或1。

int-tmp;虽然(currentSubset){tmp=currentSubset;
对我来说是一种糟糕的风格。可以做得更简单一些吗。哦,是的,现在很明显,关于如何存储数组有什么想法吗?确保你可以手工完成你想要的算法(例如,在纸上,或者在你的头脑中)。然后将其分解为您希望您的程序执行的小步骤列表;然后检查您的程序是否执行了这些步骤。
0 3 5
3 4 2
3 4 2
0 0 0
*0 0 0* 
0 0 0
0 0 0
0 0 0
currentSubset = 3;
while ( currentSubset )
{
// ...
    polje[currentSubset][...] = ...;
// ...
    currentSubset--;
}