c语言求分段函数

题目
分段函数求解:输入 x ,计算并输出 y 的值:
y=x+100 ( 当 x < 20)
y= x ( 当 2 0 ≤ x ≤ 100)
y=x-100 ( 当 x > 100)
测试用例的输入及输出结果如下:

测试用例:输入
测试用例:输出

-9< 回车 > x=-9.000000, y=91.000000
78.97 < 回车 > x=78.970000, y=78.970000
235.98 < 回车 > x=235.980000, y=135.980000

我做的答案为什么总有错误
#include<stdio.h>
int main()
{
int x,y;
scanf("%d",&x);
if(x<20)
{
y=x+100;
}
else
if(x>=20&&x<=100)
{
y=x;
}
else
y=x-100;
printf("x=%f,y=%f\n",x,y);
return 0
}

帮你改了下代码,VC6测试通过,自己看看吧。
#include<stdio.h>
int main()
{
float x,y;//根据给定的测试用例,x,y应该为float型
scanf("%f",&x);//x为float型,所以改为%f
if(x<20)
{
y=x+100;
}
else if(x>=20&&x<=100)
{
y=x;
}
else
y=x-100;
printf("x=%f,y=%f\n",x,y);
return 0;//缺少分号
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-31

1、    计算下列分段函数
f(x,y)= 2X2+3x+1/(x+y) (x>=0,y>0)
f(x,y)=2X2+3x+1/(1+y2)(x>=0,y<=0)
f(x,y)=3sin(x+y)/ 2X2+3X+1  (x<0)
具体要求如下:
(1)    用if语句实现多路分支,自变量x,y与函数值均用双精度类型。
(2)    自变量x,y用scanf函数输入,且输入前要有提示。结果的输出采用以下形式:
x=具体值,y=具体值,f(x)=具体值
(3)    分别输入x=3,y=8;x=5,y=-9;x=-7,y=2运行该程序。


2、例程:

int main(void)
{
    double x, y, f;
    printf("Please input 2 double number in the form of x y:\n");
    scanf("%lf%lf", &x, &y);
    
    if(x>=0 && y>0)
        f = 2*x*x + 3*x +1/(x+y);
    else if(x>=0 && y<=0)
        f = 2*x*x + 3*x +1/(1+y*y);
    else
        f = 3*sin(x+y)/(2*x*x) + 3*x + 1;
        
    printf("x=%lf, y=%lf, f(x, y)=%lf\n", x, y, f);
    
    return 0;
}

第2个回答  2012-06-16
#include
#include

void main()
{
int x;
float Y;
printf("please input x\n");
scanf("%d",&x);
if(x > 0)
Y = 1 + exp(x); //数学函数,计算e的x次方
else if(x == 0)
Y = 1;
else
Y = log(x * x); //数学函数,计算x的平方,以e为底
printf("%.4f\n",Y);
}

please input x
0
1.0000
Press any key to continue

please input x
1
3.7183
Press any key to continue

please input x
-2
1.3863
Press any key to continue
第3个回答  2012-10-26
else if 条件写错了应为:else if(x<=100),下面一个也是一样。
第4个回答  2010-10-19
房主的问题能不能在具体点呀。我这里只能说的是用if..... else if条件句来判断如果在不行的话联系我
相似回答