搜索
查看: 785|回复: 1
打印 上一主题 下一主题

弦截法求根有的时候输入就不行。

[复制链接]
跳转到指定楼层
楼主
发表于 2013-11-24 19:33:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <math.h>
float f(float x)
{
float z;
return 2*x*x-3*x;
}
float xpoint(float x1,float x2)
{float y1,y2;
y1=f(x1);
y2=f(x2);
return (x1-x2)/(y2-y1)*y1+x1;
}
float root(float a,float b)
{
float x3,y3;
do
{x3=xpoint(a,b);
y3=f(x3);
if(f(a)*y3>0) a=x3;
else b=x3;
}while(fabs(y3)>0.000001);
return x3;
}

int main()
{int flag=1;
float x1,x2;
while(flag)
{printf("enter x1 x2:");
scanf("%f%f",&x1,&x2);
if(f(x1)*f(x2)>0) continue;
else flag=0;
}

printf("one root is %f.",root(x1,x2));
getch();
}


如果输入-10 1就能很快算出来0  但是输入1 10就好像一直是个死循环。

沙发
发表于 2013-11-25 10:08:21 | 只看该作者
你这条代码是干什么的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表