一个简单的 C语言 问题 求教 谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/29 07:59:20
求一分段函数
#include<stdio.h>
#include<math.h>
main()
{
float x,y;
printf("x=");
scanf("%f",&x);
if(x<-3) y=x-1 ;
if(-3<=x&&x<=3) y=sqrt(9-(x*x)); ←就这句
if(x>-3) y=log10(x);
printf("y=%f",y);
getch();
}

如果这句if(-3<=x&&x<=3) y=sqrt(9-(x*x));
改成 if(-3<=x<=3) y=sqrt(9-(x*x));
就显示 SQRT: DOMAIN ERRROR 是什么意思?
这样写错在哪呢?

在C语言当中 (-3<=x<=3)这种关系式只能写成 (-3<=x&&x<=3)
如果写成(-3<=x<=3)
意思就成了
{
如果 x>=-3成立 即x>=-3值就为1了 然后1<=3 所以整条语句成立
也就是说只要满足x>=-3 这条if语句就会执行
同理可以推出x》=-3不成立的情况

}

(-3<=x<=3)?

一般的编程语言里都没有-3<=x<=3这样的数学表达式的
必须拆成2句 x>=-3 && x<=3

哎呀呀,速度慢了,我也同意 若琳若现