c++中间小问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 18:36:01
fabs(f)>=1e-6 与 fabs(f)<1e-6有什么区别;
为什么前者表示f的绝对值约等于0,而不是后者??
#include<iostream>
#include<cmath>
using namespace std;
double f(double x);
double xpoint(double x1,double x2);
double root(double x1,double x2);
void main()
{double a,b,f1,f2,x,t;
{cout<<"输入两个数:"<<endl;
cin>>a>>b;
f1=f(a);
f2=f(b);
}
while((f1*f2)>=0);
x=root(a,b);
cout<<"方程的根是:"<<x<<endl;
t=f(-0.692532);

cout<<t<<"aaaa"<<endl;
}
double f(double x)
{int g;
g=x*x*x*x+4*x*x*x-3*x*x+5*x+6;
return g;
}
double xpoint (double x1,double x2)
{double f1,f2,x;
f1=f(x1);
f2=f(x2);
x=(x1*f2-x2*f1)/(f2-f1);
return x;
}
double root(double x1,double x2)
{double x,y,f1;
f1=f(x1);
do
{x=xpoint(x1,x2);
y=f(x);
if(y*f1>0)
{f1=

楼上说得很对:
fabs(f)>=1e-6 --> y的绝对值大于0
fabs(f)<1e-6 --> y的绝对值约等于0

do
{}
while(fabs(y)>=1e-6);//当fabs(y)的值大于0的时候,循环继续

改一下循环看看:
while(1)
{
if(fabs(y)<1e-6) break;//y的绝对值约等于0时,循环结束
}

不是吧
你最好再仔细看看程序 前者可作为判断再次运算的条件
应该是后者的