用C语言switch表示分段函数要怎么表示?

如题:已知分段函数如下,编写一个程序,输出不同的Y值。
y=3 (x>5)
y=1 (x>=0)
y=-1 (x<0)
y=-3 (x<-5)
帮忙解决下``

switch(x>5)
{
case 1: y=3;break;
case 0: switch(x>=0)
{
case 1: y=1;break;
case 0: switch(x<-5)
{
case 1: y=-3;break;
case 0: y=-1;break;
}
}
}
嵌套使用
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-06-30
#include <stdio.h> void main() { int x,y,flag; printf("请输入x:"); scanf("%d",&x); flag=x<0?-1:(x<10?1:2); switch(flag) { case -1:y=x;break; case 1:y=2*x-1;break; case 2:y=3*x-1; } printf("y=%d\n",y); }本回答被网友采纳
第2个回答  2013-10-27
switch语句中的case标签必须是整型常量或者整数常量表达式 不能是个范围~所以不能用SWITCH写
用if else if..else 吧~
第3个回答  2017-06-30
y = x > 5? 3: (x>=0? 1 : (x>=-5? -1:-3));
第4个回答  2013-10-27
if( x > 5)
y = 3;
else if(x >= 0)
y = 1;
else if( x <= -5)
y = -3;
else y = -1;本回答被网友采纳

用C语言switch表示分段函数要怎么表示?
switch(x>5){ case 1: y=3;break;case 0: switch(x>=0){ case 1: y=1;break;case 0: switch(x<-5){ case 1: y=-3;break;case 0: y=-1;break;} } } 嵌套使用

c语言用switch编程分段函数
void main(){ int x,y,flag;printf("请输入x:");scanf("%d",&x);flag=x<0?-1:(x<10?1:2);switch(flag){ case -1:y=x;break;case 1:y=2*x-1;break;case 2:y=3*x-1;} printf("y=%d\\n",y);

用C语言switch表示分段函数要怎么表示?
回答:#include <stdio.h> void main() { int x,y,flag; printf("请输入x:"); scanf("%d",&x); flag=x<0?-1:(x<10?1:2); switch(flag) { case -1:y=x;break; case 1:y=2*x-1;break; case 2:y=3*x-1; } printf("y=%d\\n",y); }

如何用switch编写分段函数程序
void main(){float x;int a;printf("求y=x*x(x>=0),y=-x*x(x<0):\\n");scanf("%d",&x)if(x>=0) a=0;else a=1 switch(a){care 0:printf("y=x*x=%f",x*x);break;care 1:printf("y=-x*x=%f",-x*x);break;}} 参考资料:如果您的回答是从其他地方引用,请表明...

switch case来求解分段函数
switch(c){ case 0:\/\/你用的'0'是字符,不是整数 printf("0\\n");break;case 1:case 2:printf("1\\n");break;case 3:case 4:printf("2\\n");break;case 5:printf("3\\n");default:printf("error!\\n");break;} 还有就是你的分段函数有问题啊:f(x)=0(0<=x<=10),f(x)=1(...

用switch语句编写一个分段函数
\/\/当x=其他时,y=100;int main(){ int x=0;int y=0;int b=0;scanf("%d",&x);b=3*(x<-5)+(x<=5)+(x==0)+(x<=10)+4*(x>10) ;switch(b){ case 1:printf("y=%d",x+5);break;case 2:printf("y=%d",x-1);break;case 3:printf("y=%d",x+1);break;default...

用switch函数做分段函数,不明白为什么结果输出不对~
switch(c){ case 0:\/\/你用的'0'是字符,不是整数 printf("0\\n");break;case 1:case 2:printf("1\\n");break;case 3:case 4:printf("2\\n");break;case 5:printf("3\\n");default:printf("error!\\n");break;} 还有就是你的分段函数有问题啊:f(x)=0(0<=x<=10),f(x)=1(...

用switch写一个分段函数.高分求解.
嗯 楼上说的对 我也这么感觉 include<stdio.h> main(){ int x;float y,A,B,C;scanf("%d",&x);A=1.1,B=1.2,C=1.3;if(x>=0)switch(x\/3){ case 0:case 1:y=A;break;case 2:y=B;break;default:y=C;} printf("%.2f",y);} ...

...请用switch结构编程计算以下分段函数的值。
简单啊语句:switch((int)(x+0.5)) { case 1: y=a+b*x; break; case 2: y=a–b*x;break; case 3: y=a*b*x; break; case 4: y=a\/(b*x);break; default: printf("x error. \\n"); } 改:int temp = (int)(x + 0.5);if(temp == 1)y=a+b*x;else if(temp ...

c语编程,用switch计算分段函数。。
if(x<5)a="1;"else="" x="">=5&&x<20)a=2;你确定复制的程序没有乱码么,如果是自己写的劝你再去看看书里的基础内容 你完全不会用c语言

相似回答