如果......其他如果是Confusion C ++

时间:2014-08-24 09:30:08

标签: c++

我在处理if / else语句时遇到了很大的困惑,我构建了一个程序来决定三个提供的整数中的哪一个是最大的...我写了下面的代码:

int a,b,c,max;

cout<<"Please enter value 1: \t";
cin>>a;

cout<<"Please enter value 2: \t";
cin>>b;

cout<<"Please enter value 3: \t";
cin>>c;

if(a>b)
    {
    if(a>c)
    max=a;
        }


else if(b>a)
    {
    if(b>c)
    max=b;
    }

else if(c>a)                 //here comes the problem
    {
    if(c>b)
    max=c;
    }

cout<<"The Max value among the given value is:\t"<<max;

我为int a输入值12,为int c输入13,为int c输入14(意思是如果我在第三个实例中提供最大值)它向我显示垃圾值作为最大值(尽管有14个) ),那可能是什么问题?我在32位Windows 7上使用Dev C ++ 5.5.1。

2 个答案:

答案 0 :(得分:0)

更容易和更易读的构造将是这样的:

int maximum(int a, int b, int c) {
    int max = a; 

    if (b > max) { 
        max = b;
    }

    if (c > max) { 
        max = c;
    } 

    return max; 
}

甚至更短

    if (a>= b&& a>= c)
            cout << "The largest number is:" << a<< endl;
    else if (b> =a&& b> =c)
            cout << "The largest number is:" << b<< endl;
    else if (c>= a&& c> =b)
            cout << "The largest number is:" << c<< endl;

答案 1 :(得分:0)

正确格式化代码很简单,包括:

  • 正确对齐{}
  • 与缩进一致

int a,b,c,max;

cout<<"Please enter value 1: \t";
cin>>a;

cout<<"Please enter value 2: \t";
cin>>b;

cout<<"Please enter value 3: \t";
cin>>c;

if(a>b) {
    if(a>c)
        max=a;
} else if(b>a) {
    if(b>c)
        max=b;
} else if(c>a) {
    if(c>b)
        max=c;
}

cout<<"The Max value among the given value is:\t"<<max;