首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

比较大小疑点

2012-07-31 
比较大小问题有三个变量分别为a,b,c,取值可以为0,1,2,3.但是三个变量同时取值只有0,可以重复,也就是说三个

比较大小问题
有三个变量   分别为   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;}//大概的写了一下,不对的地方你在修改一下,应该就差不多了吧 

热点排行