基本if,else-if脚本不按预期工作

时间:2013-11-12 20:20:19

标签: c++ function if-statement logic

这个基本脚本应该比较两个输入值,并输出更大的值 - 如果两个值相同则输出0。但我似乎犯了一个错误,因为输出总是0.如果你能发现错误,我将非常感激。另外,我知道有很多方法可以做到这一点,但我正在练习我的逻辑;所以我想坚持这个结构。 感谢。

#include<iostream>
#include<cstdlib>
using namespace std;

int bigger(int, int);
int main()
{
    int num1, num2, answer;
    cout << "Enter two numbers: " << endl;
    cin >> num1 >> num2;
    answer == bigger(num1, num2);
    cout << "The bigger number is " << answer << endl;

    system("pause");
    return 0;
}
int bigger(int a, int b)
{
    int max;
    if(a > b)
    {
    max = a;
    }
    else if(a = b)
    {
        max = 0;
    }
    else {
    max = b;
        }
    return max;
}

6 个答案:

答案 0 :(得分:4)

else if(a = b)

应该是

else if(a == b)

answer == bigger(num1, num2) 

应该是

answer = bigger(num1, num2) 

答案 1 :(得分:1)

在此语句

中用赋值运算符(=)替换比较运算符(==)
else if(a = b)

答案 2 :(得分:0)

我认为

answer == bigger(num1, num2) 

应该是

answer = bigger(num1, num2)

答案 3 :(得分:0)

您正在混合平等(==)和作业(=)。

答案 4 :(得分:0)

if(a = b) 必须 if(a == b)

答案 5 :(得分:0)

除了已经指出的"==" vs "="混淆之外,我还建议您在三元运算符可能的情况下使用。在你的功能中你可以有这样的东西: if(a == b) return 0; else return (a > b ? a : b);