2fenfa.c
来自「C语言程 反对萨芬记录卡上的交付离开的撒娇发了啊」· C语言 代码 · 共 34 行
C
34 行
/*用对分法求x*x*x-2*x*x-4*x-7=0在3到4的根*/
#define EPS 5e-3
#define DELTA 1e-6
#include"conio.h"
#include"stdio.h"
#include"math.h"
float Bisection(float,float,float(*f)(float));
float f(float) ;
main()
{ float a=3,b=4;
float x;
x=Bisection(a,b,f);
printf("\nThe root of the equation is %f",x);
getch();
}
float Bisection(float a,float b,float(*f)(float))
{ float c,fc,fa=f(a),fb=f(b) ;
int n=1;
printf("c\t\tf(c)\n") ;
while(1)
{ if(fa*fb>0) exit();
c=(a+b)/2,fc=f(c);
if(fabs(fc)<DELTA) break ;
else if(fa*fc<0) {b=c;fb=fc;}
else {a=c;fa=fc;}
if(b-a<EPS) break;
printf("%d\t\t%f\n",n++,c,fc) ; }
return c;
}
float f(float x)
{
return x*x*x-2*x*x-4*x-7;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?