我一遍又一遍瀏覽了這個函數,並且無法弄清楚爲什麼我在編譯代碼時遇到這個警告/錯誤。我使用的編譯器與-Werror一起運行,所以我不確定它是警告還是錯誤,但是我得到的錯誤是:二進制搜索功能整理不返回int
錯誤:控制可能會達到非無效函數的結束[-Werror, - Wreturn型]
這裏是我的功能
int binarySearch(int key, int array[], int min, int max)
{
//Check if there is value is not found
if(max < min)
{
return -1;
}
else
{
//find midpoint
int midpoint = (min + max)/2;
//Run recursive steps
if(array[midpoint] < key)
{
binarySearch(key, array, midpoint + 1, max);
}
else if(array[midpoint] > key)
{
binarySearch(key, array, min, midpoint - 1);
}
else
{
return midpoint;
}
}
}
你不能只是調用binarySearch,你需要做它的返回值。也許你想說'return binarySearch(..)' –