我想知道是否有人能用我的代码告诉我错误。我正在尝试制作一个搜索数组中元素的算法,如果元素“小于i”和“大于u”,则返回“true”。我不太明白为什么这似乎不起作用。它有时会返回true但似乎忽略了数组的第一个元素,而其他元素则没有那么多。
除此之外,我想尝试一下这种“分而治之”的版本,现在我理解了这背后的一些理论。使用'pivot'点并将数组划分为两个较小的问题,但不知道如何实现它,如果有人可以详细说明这些问题,我将非常感激。感谢。
#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);
}
答案 0 :(得分:3)
其他人应该在那里吗?看起来应该删除else { return false }
行,您可以在整个循环后添加return false
...
应该是这样的:
for(...)
{
if(condition)
{
return true;
}
}
return false;