一个c++的简单问题,求解释

2024-12-31 15:32:12
推荐回答(4个)
回答1:

是这样的原因:你的程序写的有问题。
若你输入 -7.2 满足第一个if,那也满足第二个if啊,-7.2<10成立吧, ||是只要有一个成立,就成立,所以你输出的是第二个if的计算结果,

另外,第三个if是什么意思??

#include
#include
int main()
{
double x,y;
cin>>x;
if(x<0){y=x*x+(2/x)+sin(x);} //这行有问题
else if(x>=0 && x<=10){y=2*x*x*x*x*x-cos(x);} //&&两个条件都满足才行
else if(x>=10){ y=1/(sqrt(3*x*x-11));}
cout<return 0;
}

回答2:

你的问题出在if(x>=0||x<=10){y=2*x*x*x*x*x-cos(x);}这一行了,你输入-7.2的时候,也满足(x>=0||x<=10)这个条件,所以执行了后面的y=2*x*x*x*x*x-cos(x),结果就成-38699了。
我猜你这儿应该是 if(x>=0 && x<=10){y=2*x*x*x*x*x-cos(x);}
希望能帮到你。

回答3:

if(x>=0||x<=10) 多执行了一次y的赋值。
if(x>=0&&x<=10)

回答4:

sin()函数在C++中默认是弧度为单位,而你的-7.2是以度为单位,结果肯定不一样了,,