gpt4 book ai didi

c - 二进制搜索函数完成而不返回 int

转载 作者:太空宇宙 更新时间:2023-11-04 08:20:52 24 4
gpt4 key购买 nike

我一遍又一遍地查看这个函数,但无法弄清楚为什么在尝试编译代码时会收到此警告/错误。我使用的编译器以 -Werror 运行,所以我不确定这是警告还是错误,但我得到的错误是:

错误:控制可能到达非空函数的末尾[-Werror,-Wreturn-type]

这是我的功能

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;
}
}
}

最佳答案

如果array[midpoint] < keyarray[midpoint] > key , 你调用 binarySearch递归地,然后在不指定返回值的情况下退出函数的末尾。您可能想返回这两个分支中递归调用返回的值,例如

return binarySearch(key, array, midpoint + 1, max);

(要回答您的其他问题,如果未设置 -Werror,编译器诊断将发出警告,但警告表明代码中存在错误,这当然是为什么 -Werror 通常是个好主意.)

关于c - 二进制搜索函数完成而不返回 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33490090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com