关于弦切法求三次方程的问题,帮帮我
#include <stdio.h>#include <math.h>
float f(float x)
{
return x*x*x-5*x*x+16*x-80;
}
float xpoint(float x1,float x2)
{
float x;
x=(x1*f(x2)-x2*f(x1))/(x2-x1);
return x;
}
float judge(float x1,float x2)
{
float y2,y,y1,x;
y2=f(x2);
do
{
x=xpoint(x1,x2);
y=f(x);
if(y*y2<0)
x1=x;
else
{
x2=x;
y2=y;
}
}while(fabs(y)>1e-5);
return x;
}
void main()
{
float x,x1,x2,y1,y2,r;
do
{
printf("输入两个数:");
scanf("%f%f",&x1,&x2);
y1=f(x1);
y2=f(x2);
}while(f(x1)*f(x2)>0);
r=judge(x1,x2);
printf("该函数近似解为:%f\n",r);
}
为什么这个程序的结果我输入2 6,
但是它老给的答案是1.#什么的。
哪里出了问题啊,好心人帮帮我哦,谢谢啦。