2017-02-21 15 views
0

Это в настоящее время мой код:Достижение непусто Функция [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 mid; 
} else if (f(mid)> lo){ 
bisection ((*f), lo, mid, tolerance); 
} else { 
return bisection ((*f), mid, hi, tolerance); 
} 

Просто интересно, где я мог бы перепутались здесь, я застрял на этом в течение нескольких часов

+2

попробовать 'возвратного бисекции (...)' – cleblanc

+1

Ваша функция должна возвращать 'double', но не на самом деле' return' любое значение. – AlexP

+0

Достижение *** конца *** не-void функции. –

ответ

1

Вы только возврат от if часть вашего списка if else. Вы должны возвращать результат ваших рекурсивных вызовов с:

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

И есть два синтаксических ошибки во втором делении пополам ... вот что вы получаете за код cut'n'pasting :-) – Jens

 Смежные вопросы

  • Нет связанных вопросов^_^