0

ターゲット番号を受け取るように設計された for ループがあり、スタック [ターゲット] でデータが見つかるまでスタックをループし、そのデータを返すことになっています。

残念ながら、それが入っている配列の位置またはランダムな数字の文字列 (私のコードのように定期的に変化します) を返すことしかできません。

私は単にstackArray [counter]を返そうとしましたが、それはまるでカウンターを返しているかのように機能します。次に、コードを変更して新しい変数を作成し、その変数を返すと、数字の文字列に戻りました。私のスタック配列がポインタであるという事実と関係があると思いますか? ここでレンガの壁にぶつかったようなものなので、どんな入力でも役に立ちます。

これが私のループです(少なくとも最新バージョンです。さまざまな方法で試しました):

 for (int counter = 0; counter < target; counter++ )
    {
        if (stackArray[counter] == target)
        {
            answer = stackArray[counter];

        }
        cout << "beep " << counter << " " << target << endl;

    }
4

1 に答える 1

2

ループで一致した値を返すのforは簡単です。ifブロック内に return ステートメントを追加するだけです。

for (int counter = 0; counter < target; counter++ )
{
    if (stackArray[counter] == target)
    {
        answer = stackArray[counter];

        return answer; // <---
    }
}

answerで検索しているので、何が起こるかはすでにわかっているため、これはほとんど意味がありませんtarget。まで反復forしているため、ループが正しくないように見えます。targetこれは、答えが既にわかっており、 で直接アクセスできることを意味しますstackArray[target]。この検索で​​は、配列の最後まで検索する必要があります。

于 2013-04-19T01:42:01.017 に答える