C++ 如果(abs(num-num2)<;=0.01)不能<<&引用;“xyx”;;不在c+中工作+;
我是一个新手程序员。有了C++控制台程序,我想计算两个数是否相等(2个数之间的差值必须在0.01之间)。当2个数是3到17.99时,程序给出正确的结果。但是当数字超出这个范围时,它就不起作用。C++ 如果(abs(num-num2)<;=0.01)不能<<&引用;“xyx”;;不在c+中工作+;,c++,c++17,C++,C++17,我是一个新手程序员。有了C++控制台程序,我想计算两个数是否相等(2个数之间的差值必须在0.01之间)。当2个数是3到17.99时,程序给出正确的结果。但是当数字超出这个范围时,它就不起作用。 double num,num2; while(cin>>num>>num2) { if(abs(num-num2)<=0.01) { cout<<"The numbers are almost equal"; } } 在上
double num,num2;
while(cin>>num>>num2)
{
if(abs(num-num2)<=0.01)
{
cout<<"The numbers are almost equal";
}
}
在上面的所有代码中使用。
< p>看起来,你从C中使用<代码> Abess()/<代码>,从中可以看出它接受了“类型<代码> int <代码>的值。因此,你的参数是圆的。你要么需要使用<代码> Fabs](),要么从代码中更好地使用C++变体>代码:STD::Abess()/<代码>,它提供了正确的这又是一个案例,告诉您“
使用namespace std;
不是您的朋友”您需要的是fabs()
,而不是abs()
@Slava或juststd::abs
。请格式化您的代码,使其可读。哦,好吧,这就是问题所在,为什么第一个代码不起作用。但为什么第二个代码不起作用,请找出原因。我总是使用“使用命名空间std;”@Curiouslearner和我总是使用“使用命名空间std;”-那么你最好停下来。@Curiouslearner“但是为什么第二个代码不起作用,请找出原因”首先,每个问题一个问题。其次-需要数据样本(你期望的和你得到的)阅读规则。
double num,num2;
while(cin>>num>>num2)
{
if(num>num2)
{
if(num-num2<=0.01)
cout<<"~";
}
else if(num2>num)
{
if(num2-num<=0.01)
cout<<"~";
}
}
double num,num2;
while(cin>>num>>num2)
{
if(num>num2)
{
if(num2+0.01>=num)
{
cout<<"~";
}
}
else if(num2>num)
{
if(num+0.01>=num)
{
cout<<"~";
}
}
}
num-num2<=0.01 Or, -num2-0.01<=-num Or, num2+0.01>=num
using namespace std;