0

我想知道是否有人可以告诉我我的代码的错误。我正在尝试制作一种算法来搜索数组中的元素,如果元素“小于 i”且“大于 u”,则返回“true”。我不太明白为什么这似乎不起作用。它有时会返回 true,但似乎忽略了数组的第一个元素,其他的则不然。

除此之外,我想尝试一个“分而治之”的版本,现在我了解了这背后的一些理论。使用“枢轴”点并将数组分成两个较小的问题,但不知道如何实现它,如果有人能详细说明这些问题中的任何一个,我将不胜感激。谢谢。

#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 回答