c++switch case 语句实现分段函数怎么算?

如题所述

格式为:

switch(i){

case 1:语句1

case 2:语句2

.......

default:语句3

}

实例如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-31
前一位兄弟的做法也是没有错的,但是我觉得为此而编写一个符号函数,且在函数中的处理与在程序中直接使用if...else语句没有什么区别;并且进行调用函数要耗用系统资源的,会使程序运行得较慢。若是可以不用调用函数就会使程序运行得快些。
为此本人针对这个问题想了以下方法:
若X小于0令Y等于-10;否则,令Y等于X。因为在C++语言中当Y等于-10时,Y除以10等于-1;当0≤Y<10时,Y除以10等于0;当Y>10时,Y除以10大于0。由此即可以使用switch...case...语句了。
以下是本方法的具体程序实现。

#include <iostream>
using namespace std;

void main(void)
{
int X,Y;
cout<<"请输入X的值:";
cin>>X;
if(X<0)/*调整X的值,以便可以使用switch...case...语句*/
Y=-10;
else
Y=X;
switch(Y/10)
{
case -1:Y=X;break;
case 0:Y=2*X;break;
default:Y=2*X-1;
}
cout<<"Y的值为: "<<Y<<endl;
}

c++switch case 语句实现分段函数怎么算?
switch(i){ case 1:语句1 case 2:语句2 ...default:语句3 } 实例如下:

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(...

用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 case来求解分段函数
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(10<=x<=30),f(x)=2(30<=x<=50),f(x)=3(x...

如何使用switch-case函数实现下面的分段函数
int main (){ double x,y; int c; printf("输入x的值:"); scanf("%lf",&x); if((c=x\/10)<0) c=-1; switch (c){ \/\/case 4:删除此行,函数定义域中无40 case 3: case 2:y=((-0.5)*x+3);break; case 1:y=10;break; case 0:y=...

用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;} } } 嵌套使用

...请用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语句?编写图中的分段函数?
C语言使用switch语句,编写图中的分段函数:include<stdio.h> voidmain()intx,y,flag;printf("请输入x:");scanf("%d",&x);flag=x<0?-1:(x<10?1:2);switch(flag)case-1:y=x;break;case1:y=2*x-1;break;case2:y=3*x-1;printf("y=%d\\n",y);简介 ...

用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语句编写一个分段函数
\/\/当5<x<=10时,y=x+5;b=1 \/\/当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:...

相似回答