私は配列要素にアクセスするための再帰関数を書いています。 2回目、3回目、4回目、それ以降、150回まで同じことをやりたいのですが反復で行います。私は以下のコードを書いていますが、最初の例は実行されていますが、正しいとは分からず、最初の関数と同じように動作します。私はこれを行うために私は2つのループを使用していることを知っている私は間違った場所にインデックスvarを配置している可能性があります。反復を使用する変換関数
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
それでは、どうしてそんなこと言わないのですか?テスト結果 - 入力、期待出力、実際の出力を共有します。それと[mcve]はあなたの特定の問題が何であるかを読者が知るために必要なすべてのSOの質問です。 – kaylum