高手指教:我的一二分法程序不执行循环
求f=3*x*x*x+x*x+1在(-1,1)的解。精度为0.001。我用的是BC。追踪看总是跳过循环。哪位高手指教下。谢啦~~~~~~#include<stdio.h>
#include<math.h>
void main()
{
float x1,x2,x,f1,f2,f;
x1=-1;
x2=1;
while(fabs(x1-x2)>0.001)
{ f1=3*x1*x1*x1+x1*x1+1;
f2=3*x2*x2*x2+x2*x2+1;
x=(x1+x2)/2;
f=3*x*x*x+x*x+1;
if(f1*f<0) x2=x;
else if(f2*f<0) x1=x;
else x1=x,x2=x;break;
}
x=(x1+x2)/2;
printf("x=%f",x);
}
[[it] 本帖最后由 木逸如风 于 2008-3-27 16:08 编辑 [/it]]