我有一个简单的C ++递归二进制搜索程序。该程序可以使用ideone正常编译:http ://ideone.com/gMB96l
但是,当我尝试在OS X上使用Xcode在我的机器上进行编译时,它给出了一个错误:控件可能到达非void函数的结尾。
当我尝试使用命令行进行编译时,也是如此:g++ RecursiveBinarySearch.cpp
和./a.out
,它给了我:RecursiveBinarySearch.cpp:18:1:警告:控件可能会到达非void函数的结尾[-Wreturn-type]
有人知道为什么吗?
#include <iostream>
using namespace std;
static const int SIZE = 10;
int search(int arr[], int target, int startIndex, int endIndex)
{
if (startIndex > endIndex) return -1;
int midIndex = (startIndex + endIndex) / 2;
if (target == arr[midIndex])
return midIndex;
else if (target < arr[midIndex])
search(arr, target, startIndex, midIndex-1);
else
search(arr, target, midIndex+1, endIndex);
}
int main() {
int arr[SIZE] = {1,2,3,4,5,6,7,8,9,10};
cout << "3 is at index: " << search(arr, 3, 0, SIZE-1) << endl;
return 0;
}
search
除非您的代码不会返回值target == arr[midIndex]
。您可能是指return
递归调用search
ie返回的值return search(arr, target, ...);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句