读书人

比较大小疑点

发布时间: 2012-07-31 12:33:46 作者: rapoo

比较大小问题
有三个变量 分别为 a,b,c, 取值可以为0,1,2,3.
但是三个变量同时取值只有0,可以重复,也就是说三个变量可以取到这种情况,例如 0,0,1,
不可能同时出现两个1 ,两个2,两个 3,

还有就是如果是a为0,那么b为1,
c为2.时我要得到最小值b,但是0不算最小值,也就是说0除外。

我没有考虑两个0的情况代码为这样。

int fun(int a,int b, int c)
{
_IF(a < b)
{
_IF(a < c)
{
_IF (a* c== 0 && a+ b!= 0)
{
_IF(a== 0 )
{
strRetBOMCode = b;
}
else
{
strRetBOMCode = a;
}
}
else
{
strRetBOMCode =a;
}
}
else
{
_IF (a* c== 0 && a+ c!= 0)
{
_IF(a== 0 )


{
strRetBOMCode =c;
}
else
{
strRetBOMCode =a;
}
}
else
{
strRetBOMCode = c;
}
}
}
else
{
_IF(b < c)
{

_IF (b* c== 0 && b+ c!= 0)
{
_IF(b== 0 )
{
strRetBOMCode =c;
}
else
{


strRetBOMCode = b;
}
}
else
{
strRetBOMCode = b;
}
}
else
{
_IF (b* c== 0 && b+ c!= 0)
{
_IF(b== 0 )
{
strRetBOMCode = c;
}
else
{
strRetBOMCode = b;
}
}
else
{
strRetBOMCode =c;
}
}
}


return strRetBOMCode
}

怎么样才能很快的比较出来,我这只有一部分。大家帮帮忙,求大侠们了......

[解决办法]

C/C++ code
#define Max(a,b,c) (a>(b>c?b:c)?a:(b>c?b:c))#include <iostream>#include <string>using namespace std;int func(int a,int b,int c)//判断条件函数{    //-1表示无最大值    if(a || b || c)    {        if(a == b && (a == 1 || a == 2 || a == 3)){cout<<"不合法"<<endl;return -1;}            //是三个变量同时取值只有0,可以重复,也就是说三个变量可以取到这种情况,            //不可能同时出现两个1   ,两个2,两个     3,                     else if( a == c && (a == 1 || a == 2 || a == 3)) { cout<<" 不合法"<<endl; return -1; }        else if( b == c && (b == 1 || b == 2 || b == 3 )) { cout<<" 不合法"<<endl; return -1; }        else//为 0,0的情况!         {            if(a == c && a == 0) return b;            else if(a == b && a == 0) return c;            else if(b == c && c == 0) return a;            else return Max(a,b,c);        }    }    else    {        cout<<"三个变量都是0\n"<<endl;    }    return 0;}int main(){    int a;    int b;    int c;    cout<<"输入a,b,c: ";    cin>>a;    cin>>b;    cin>>c;    int temp=func(a,b,c);    if(temp >= 0)    {        cout<<"最大值: "<<temp<<endl;    }    else    {        cout<<"无最大值"<<endl;    }    return 0;}//大概的写了一下,不对的地方你在修改一下,应该就差不多了吧 

读书人网 >C++

热点推荐