为什么😢出来的结果总是不对

img

就在-1≤x≤1这里不行,我怎么改都得不到正确答案,不懂为什么,求大家帮助,感激不尽

浮点数与整数直接比较,比较时涉及到了隐式类型转换,把1改成1.0,-1改成-1.0就可以了

你的输入是double,
scanf("%lf",&y);
那么输出就要这样:
printf("%f",y);

如果输入是float
scanf("%f", &y);
输出用printf("%f", y);

还有你的写法确实很奇怪啊,你输入的是double,为啥传参的时候变成float了呢?z定义的是float,返回的时候又变成double?double的精度要比float高一倍呢