满意答案
#include
#include
#define eps 5e-6
#define delta 1e-6
#define e 2.718
float bisection(float a,float b,float (*f)(float)){
float c,fc,fa=(*f)(a),fb=(*f)(b);
int n=1;
printf("二分法次数\tc\t\tf(c)\n");
while(1){
if(fa*fb>0){printf("不能用二分法求解");break;}
c=(a+b)/2;fc=(*f)(c);
if(fabs(fc)
else if(fa*fc<0){b=c,fb=fc; }
else {a=c,fa=fc;}
if (fabs(b-a)
printf(" %d\t\t%f\t%f\n",n++,c,fc);
}
return c;
}
float f(float x){
//return x*x*x+x*x-3*x-3;
return exp(x)+x;}
void main(){
float a=-1,b=0;
float x;
x=bisection(a,b,f);
printf("\n 方程的根是: %f\n",x);
getchar();
}
01分享举报