Решение уравнения методом деления пополам - C (СИ)
Формулировка задачи:
Доброго времени суток снова обращаюсь к вам за помощью возникла некоторая проблемка написал программу "Решение уравнения методом деления пополам " все хорошо и здорово она работает но надо написать указатель на функцию а с этим небольшая проблемка, помогите если это не составит вам труда вот код программы
Заранее благодарен за любую помощь!!!
#include <stdio.h> #include <math.h> double f(double x) { return x-3; } double half(double a, double b, double eps) { double c; while(fabs(b-a)>eps) { c=(a+b)/2; if (f(a)*f(c)<=0) b=c; else a=c; } return c;} int main() { double a,b,eps,x; printf("a,b,eps: "); scanf("%lf %lf %lf", &a,&b,&eps); x=half(a,b,eps); printf("root=%lf\n",x); return 0; }
Решение задачи: «Решение уравнения методом деления пополам»
textual
Листинг программы
#include <stdio.h> #include <math.h> double g(double x) { return x-3; } double half(double a, double b, double eps, double (*f)(double)) { double c; while(fabs(b-a)>eps) { c=(a+b)/2; if (f(a)*f(c)<=0) b=c; else a=c; } return c;} int main() { double a,b,eps,x; printf("a,b,eps: "); scanf("%lf %lf %lf", &a,&b,&eps); x=half(a,b,eps, g); printf("root=%lf\n",x); return 0; }
Объяснение кода листинга программы
- В функции
main()
программа запрашивает у пользователя значения переменныхa
,b
иeps
с помощью функцииscanf()
. - Значения переменных
a
,b
иeps
сохраняются в соответствующих переменных. - Вызывается функция
half(a,b,eps,g)
, которая решает уравнение методом деления пополам. - Результат вычисления функции
half()
сохраняется в переменнойx
. - С помощью функции
printf()
выводится на экран значение переменнойx
, которое является корнем уравнения. - Программа завершается с кодом 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д