
#include <stdio.h>
#include <math.h>
#define eps 1e-6
#define delta 1e-6
float f(float x){
return x*x*x+x*x-3*x-3;
}
float bisection(float a,float b){
float c,fc,fa=f(a),fb=f(b);
while (fabs(b-a)>eps){
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;
}
}
return c;
}
int main() {
float a,b;
float x;
do {
printf("input a and b:");
scanf("%f%f",&a,&b);
}while (f(a)*f(b)>=0);
x=bisection(a,b);
printf("%f\n",x);
return 0;
}
1万+

被折叠的 条评论
为什么被折叠?



