一个分段函数的C语言问题,我想问一下为什么无论x我输入多少,得出来的结果都是0,希望有人解答一下我的疑惑,顺便帮我指正,谢谢了
(1)把x和y改成float类型, float x,y;
(2)^符号在C语言中是亦或运算,不是求幂,需要用pow函数
pow((x-3),2);
(3)1/2改成 1.0/2
完整代码:
#include <stdio.h>
#include <math.h>
int main()
{
float x, y;
printf("please input x:");
scanf("%f", &x);
if (x < 2)
y = -x + 2.5;
else if (x >= 4)
y = (1.0 / 2) * x - 1.5;
else
y = pow((x - 3), 2) * (-1.5) + 2;
printf("y=%f", y);
return 0;
}
int x,y;
改成 double x,y;
(x-3)^2
改成pow(x-3,2)
或者(x-3)*(x-3)
改成pow(x-3,2)
的话,加一个 #include <math.h>
搞成double x,y;
因为int类型和double不一样,不能混着用,有小数就用double
因为整数不保留小数