编程求分段函数的值

来源:百度知道 编辑:UC知道 时间:2024/05/13 08:14:49
用的是C++的语言编程、
题目是:

5X (x>0)
y={ 1 (x=0)
-6+x (x<0)

请问怎么解答?
*/main(){
float x, y;
printf("请输入x的值:");
scanf("%f", &x);
if (x>0) y=5x;
else if (x=0 ) y=1;
else if ( x<0) y=-6+x (x<0);
printf("\n计算结果为 %f", y);
getch();
}

我自己做了下,这样有错吗?
是在学算法,你的那个答案似乎和我学的有些出入~
可以帮偶矫正下上面的错误吗?

楼上正确,但是当声明float类型时,条件判断最好不要用if (x==0 )
要用
const float EPSINON = 0.00001;
if ((x >= - EPSINON) && (x <= EPSINON))
不可将浮点变量用“==”或“!=”与数字
比较,应该设法转化成“>=”或“<=”此
类形式。

更改为:
main() {
float x, y;

printf("请输入x的值:");
scanf("%f", &x);
if (x>0)
y = 5 * x;
else if (x==0 )
y = 1;
else
y = x - 6;
printf("\n计算结果为 %f", y);
getch();
}