达到非类函数[C]

达到非类函数[C],c,C,这是我当前的代码: if (f(mid >=0){ if (f(mid)<=tolerance){ return mid; } else if (f(mid)>lo){ bisection ((*f), lo, mid, tolerance); } else { return bisection ((*f), mid, hi, tolerance); } else { mid = (-1) * mid; if (f(mid) <= tolerance) { return

这是我当前的代码:

if (f(mid >=0){
if (f(mid)<=tolerance){
return mid;
} else if (f(mid)>lo){
bisection ((*f), lo, mid, tolerance);
} else {
return bisection ((*f), mid, hi, tolerance);
} else {
mid = (-1) * mid;
if (f(mid) <= tolerance) {
return mid;
} else if (f(mid)> lo){
bisection ((*f), lo, mid, tolerance);
} else {
return bisection ((*f), mid, hi, tolerance);
}
只是想知道我可能把这里搞砸了,我已经在这上面呆了几个小时了

你只会从if-else列表的if部分返回。您应该返回递归调用的结果,其中包含:

} else if (f(mid) > lo) {
    return bisection ((*f), lo, mid, tolerance);
} else {
    return bisection ((*f), mid, hi, tolerance);
}

尝试返回二分法…你的函数应该返回一个double,但是你实际上没有返回任何值。到达一个非void函数的末尾。这很有帮助!我打错电话了,但这肯定有帮助。谢谢你的比较,fmid>lo没有任何意义。您应该检查fmid是否与fhi具有相同的符号或与flo具有相同的符号。。。这就是剪切粘贴代码得到的结果:-