第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文件中的
当然可以有其他的语句了