0

誰かが私のコードでエラーを教えてくれるかどうか疑問に思っていました. 配列内の要素を検索し、要素が「i 未満」および「u より大きい」場合に「true」を返すアルゴリズムを作成しようとしています。なぜこれが機能しないように見えるのか、私にはよくわかりません。true を返すこともありますが、配列の最初の要素を無視しているように見えますが、そうでないものもあります。

これに加えて、これの「分割統治」バージョンを試してみたいと思います。これで、この背後にある理論の一部が理解できました。「ピボット」ポイントを使用し、配列を2つの小さな問題に分割しますが、それを実装する方法がわかりません.誰かがこれらの問題のいずれかについて詳しく説明できれば、私は最も感謝しています. ありがとう。

#include <iostream>

using namespace std;

bool ArrayCheck(int length) {
    int A[] = { 5, 10, 20, 25, 50 };
    int i = 40;  //less Than
    int u = 15;  //Greater Than

    for (int Count = 0; Count < length; Count++) { //Counter
        if (A[Count] <= i && A[Count] >= u) { //Checker
            return true;
            break;
        } else {
            return false;
        }
    }
}

int main() {
    cout << ArrayCheck(5);
}
4

1 に答える 1

3

他の人はそこにいるはずですか?else { return false }行を削除するだけでreturn false、ループ全体の後に追加できるようです...

次のようになります。

for(...)
{
    if(condition)
    {
         return true;
    }
}
return false;
于 2012-11-07T17:52:30.730 に答える