c++switch case 语句实现分段函数

这道题怎么也不会,只好来百度了!希望高手们能给予帮助
是一个分段函数:x<0,y=2x+1;0≤x≤3,Y=x*x;x>3,Y=3x;
用switch case 语句实现的!!!拜托了!
题目就这样的。。就是问这样的一个分段函数能不能用switch case 语句!!!

为什么都要加个using namespace std;呢,不加行不行!
还有就是不能用其他语句的,就只用switch case 语句

格式为:

switch(i){

    case 1:语句1

    case 2:语句2

    .......

    default:语句3

}

实例如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-24

前一位兄弟的做法也是没有错的,但是我觉得为此而编写一个符号函数,且在函数中的处理与在程序中直接使用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;
}
第2个回答  2018-03-30

格式为:

switch(i){

case 1:语句1

case 2:语句2

.......

default:语句3

}

实例如下:

本回答被网友采纳
第3个回答  推荐于2017-09-03
因为switch (x) 中的x只能是整数或枚举型,而输入的x可能数小数,所以要转换一下;
因为只有3种情况所以用3个判断就行了;
代码如下:
#include <iostream>
using namespace std;

int main()
{
double x,y;
int k;
while(cin>>x)
{
if( x < 0 ) k=0;
else if( x >= 0 && x <= 3 ) k=1;
else if( x > 3 ) k=2;
switch(k)
{
case 0:y=2*x+1; break;
case 1:y=x*x; break;
case 2:y=3*x; break;
}
cout<<y<<endl;
}
return 0;
}本回答被提问者采纳
第4个回答  2011-05-27
#include <iostream>
using namespace std;

int main()
{
double x,y;
int k;
while(cin>>x)
{
if( x < 0 ) k=0;
else if( x >= 0 && x <= 3 ) k=1;
else if( x > 3 ) k=2;
switch(k)
{
case 0:y=2*x+1; break;
case 1:y=x*x; break;
case 2:y=3*x; break;
}
cout<<y<<endl;
}
return 0;
}

这个应该是对了

不行的,using namespace std 不加的话endl和cout都不能直接用的,要加std::endl和std::cout才可以。因为这两个关键词的功能实现都在std文件中的

当然可以有其他的语句了
相似回答