用二分法求解根
#include<stdio.h>
#include<math.h>
double func(double x);
int main(void){
double x0;
double x1=-10;
double x2=10;
double fx1,fx2,fx0;
fx1=func(x1);
fx2=func(x2);
do{
x0=(x1+x2)/2;
fx0=func(x0);
if(fx1*fx0<0){
x2=x0;
fx2=fx0;
}
else{
x1=x0;
fx1=fx0;
}
}while(fabs(fx0)>1e-5);
printf("the root is %lf",x0);
}
double func(double x){
return x*((2*x-4)*x+3)-6;
}

浙公网安备 33010602011771号