当前位置: 代码迷 >> C语言 >> 高手指教:我的一二分法程序不执行循环
  详细解决方案

高手指教:我的一二分法程序不执行循环

热度:329   发布时间:2008-03-23 11:19:48.0
高手指教:我的一二分法程序不执行循环
求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]]
搜索更多相关的解决方案: 指教  else  include  

----------------解决方案--------------------------------------------------------
while(fabs(x1-x2)<0.001)
。。。分明是fabs(x1-x2)>0.001
----------------解决方案--------------------------------------------------------
谢谢啦,没注意到这个问题
----------------解决方案--------------------------------------------------------
我改过了,还是不行啊
----------------解决方案--------------------------------------------------------
else x1=x,x2=x;break;
ELSE 后面有分号
----------------解决方案--------------------------------------------------------
我知道了,谢谢~~~~
----------------解决方案--------------------------------------------------------
  相关解决方案