你的思路有问题的。
测试结果:
2.000003 【就一个实根】
代码:
#include "stdio.h"
#include "conio.h"
#include "math.h"
float getFV(float x)
{
return 2*x*x*x-4*x*x+3*x-6;
}
main()
{
double x1,x2,a,fx1,fx2;
x1=-10;
x2=10;
a=(x1+x2)/2.0;
while(fabs(getFV(a))>0.00001 && fabs(x1-x2)>0.00001)
{
if(getFV(a)*getFV(x2)<0) x1=a;
if(getFV(a)*getFV(x1)<0) x2=a;
a=(x1+x2)/2.0;
}
printf("%lf",a);
getch();
}