是这样的原因:你的程序写的有问题。
若你输入 -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<
}
你的问题出在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);}
希望能帮到你。
if(x>=0||x<=10) 多执行了一次y的赋值。
if(x>=0&&x<=10)
sin()函数在C++中默认是弧度为单位,而你的-7.2是以度为单位,结果肯定不一样了,,