#include<stdio.h> |
#include<math.h> |
int main() |
{ |
float x1,x2,x0,fx1,fx2,fx0; |
do |
{ |
printf ( "Enter two numbers:\n" ); |
scanf ( "%f%f" ,&x1,&x2); |
fx1=x1*(2*x1*(x1-2)+3)-6; |
fx2=x2*(2*x2*(x2-2)+3)-6; |
} while (fx1*fx2>0); |
do |
{ |
x0=(x1+x2)/2; |
fx0=x0*(2*x0*(x0-2)+3)-6; |
if (fx1*fx0<0) |
{ |
x2=x0; |
fx2=fx0; |
} |
else |
{ |
x1=x0; |
fx1=fx0; |
} |
} while ( fabs (x0)>=1e-5); //如果是<=,则只会执行一次本循环,所以直接计算并输出x0=(x1+x2)/2。 |
printf ( "%6.2f\n" ,x0); |
return 0; |
} |