C++switch case解决方程组

来源:百度知道 编辑:UC知道 时间:2024/09/26 00:19:56
如果用switch case语句来解决方程组的问题该如何实现如Y=X (X<0) Y=2X (X>=0X<10) Y=2X-1 (X>=10) 尽量用简单的语句实现,我现在才学到枚举,太难的看不懂 谢谢了
第三位兄弟 其实这是一道书上的练习题 要求用IF和switch俩种解决 我已经能用if 了 但是却无法用switch
我开始的时候也是跟第一位的一样编的但是系统提示case后面出问题了 所以才来这里寻求帮助的
tanyuguo兄弟已确认可以通过 但能不能再简单点
晚上如果还没有更简单的回答 就选 tanyuguo的了
weijiayin08是我所希望的 就选你了

大家回答的时候能不能把开头结尾加上啊 我才开始学 这些不清楚啊

前一位兄弟的做法也是没有错的,但是我觉得为此而编写一个符号函数,且在函数中的处理与在程序中直接使用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语言里case后面不可以跟运算符号,所以再写一个函数,像楼下大哥做的方法是对的~

不知道楼主说的是不是这个意思:
switch(f(X))
{
case 0:
Y = X;
break;
case 1:
Y = 2X;
break;
case 2:
Y = 2X-1;
break;
de