我写了一个递归函数来访问数组元素。每个第二,第三,第四,等等到150.我想要做同样的事情,但迭代。我在下面编码了一些东西,它运行的第一个例子,但我不确定它是否正确,并且与第一个函数的作用相同。我知道我使用两个for循环来做到这一点,我可能已经把索引变量放在错误的地方。转换函数使用迭代
void openarray(skip)
{
int i;
for(i = skip; i < 150; i+=skip + 1)
{
if(arrayB[i] == open)
{
arrayB[i] = close;
}
else
{
arrayB[i] = open;
}
}
if(skip < 150)
{
openarray(skip + 1);
}
}
我的代码变成迭代我想我可能已经混淆了索引的步骤,反之亦然。
int i, j;
for(i = 0; i < 150; i++)
{
for (j = 0; j < 150; j+=i + 1)
if(arrayB[i] == open)
{
arrayB[i] = close;
}
else
{
arrayB[i] = open;
}
}
“我不确定它的正确性和作用与第一个功能相同”。这就是测试的目的。设计你的测试并运行它们。如果结果是错误的,那么你知道代码是不正确的。从那里开始调试。在Stackoverflow上发布不是测试或调试的第一步。 – kaylum
@kaylum ive试过所有的日子ive一直打印出所有的索引,并跳过我不能想出它,你不认为我一直在测试和尝试一个粗鲁的假设... – mikecodeguy
10那么你为什么不这样说呢?分享您的测试结果 - 输入,预期输出,实际输出。这和所有问题都应该帮助读者了解你的具体问题。 – kaylum