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条件句来判断如果在不行的话联系我

c语言中如何将分段函数值计算出来?
include <stdio.h> include <math.h> int main(){ float x, result;printf("请输入x的值:");scanf("%f",&x);if(x <= 0){ result = 0;} else if(x <= 10){ result = sqrt(x);} else { result = 2 * x + 3;} printf("%f",result);return 0;} ...

c语言 计算分段函数,测试数据分别是-2,3,7
{ f=x+1; if ( f<0 ) f=-f; } x<=5 x,f);计算下列分段函数 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)

C 语言 编写程序,计算分段函数:
\/\/100分制 include <stdio.h> void main(){ int score,t;printf("输入成绩:");scanf("%d",&score);t=score\/10;\/\/t的取值0,1,2,3,4,5,6,7,8,9,10 switch(t){ case 0:case 1:case 2:case 3:case 4:case 5:printf("不及格\\n");break;case 6:printf("及格\\n")...

C语言:计算图片中的分段函数;x由键盘输入,实数。咋编?
int main(int argc,char *argv[]){ double x;printf("Enter x(R:)...\\nx=");scanf("%lf",&x);printf("y = %g\\n",(x ? sin(x)+100 : cos(x)-10*x+3));return 0;}

C语言计算分段函数
printf("Wrong input of score!\\n");else if(score>=90 && score<=100)printf("A\\n");else if(score>=80 && score<=89)printf("B\\n");else if(score>=70 && score<=79)printf("C\\n");else if(score>=60 && score<=69)printf("D\\n");else printf("E\\n");return 0;} ...

C语言写计算分段函数
你确定y也是0-40间的整数吗?如果是的话,那么该分段函数中的第三段计算的结果已经超出了数值范围啊;如果y的取值没有限制,那么程序如下:include void main (){ int x,y;scanf("%d",&x);if(x>=0&&x<10)y=x;else if(x>=10&&x<20)y=10;else if(x>=20&&x<40)y=x*x+3;else ...

C语言计算分段函数的值为什么不对呢?
int x,y;采用上面两个方法都可以让程序正常运行。问题二,scanf语句中双引号当中有“x=”,全部是:scanf("x=%d",&x);或scanf("x=%lf",&x);这样的写法,要求在程序运行时,输入的内容要包含双引号内除格式符以外的所有字符,即你一定要输入:x=2[回车]系统才能读到x的值2。值得注意的是,...

c语言:编写程序可计算如下分段函数
inlude<math.h>#include<fstream.h>#define pi=3.1415926int main(){float x,y;cin>>x;if(x>0){ y=(pow(x,0.5)+exp(x))\/(5*x+5);}else{ y=(2\/3.0+sin(60*pi\/180.0))*fabs(x);}cout<<"y="<<y<<endl;return 0;} 具体的你再调试下 ...

大神们找个c语言的分段函数的值怎么求?
include <stdio.h> int main(){ float x,y;scanf("%f",&x);if(x>-1) y=1\/(1+x);else if(x==-1) y=0;else y=x*x;printf("%f",y);return 0;} \/\/运行示例:

c语言求分段函数
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;\/\/缺少分号 } ...

相似回答