c语言大神们!我想算个分段函数,但是当x=10的时候老是得到结果为72!为什么会这样呢?

代码如下,分段函数如下 #include <stdio.h> int main(void) { double x,y; printf("这是用来求函数 y(x)的值的一个程序!请输入x的值;"); scanf("%lf",&x); if(x<=-3) { y=x*x+1; printf("%lf\n",y); printf("程序结束!"); } else if (-3<x<=10&&x!=0) { y=x*x-3*x+2; printf("%lf\n",y); printf("程序结束!"); } else if (x>=10||x==0) { y=x-0.91; printf("%lf\n",y); printf("程序结束!"); } else { printf("错误,请重新输入!"); }return 0; }

第1个回答  2021-10-21
因为你else if 那里条件已经有x=10,if函数是顺序执行的,当它检测到上面函数满足条件,就会执行函数并跳出函数。所以结果会是72
第2个回答  2021-10-21
当x=10时,按照分段公式,是应该等于72的啊!问题是如果你输入x=1000的话它也会照此公式算的。if(-3<x<=10&&x!=0)因为-3<=x得到满足,于是为true,也就是1,然后1<=10也是满足的。
第3个回答  2021-10-21

因为x = 10先满足上面这条

第4个回答  2021-10-21

if (-3<x<=10&&x!=0) 改为if (-3<x&&x<=10&&x!=0) 

本回答被网友采纳