0

这个基本脚本应该比较两个输入值,如果两个值相同,则输出较大的值--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;
}
4

6 回答 6

4
else if(a = b)

应该

else if(a == b)

answer == bigger(num1, num2) 

应该

answer = bigger(num1, num2) 
于 2013-11-12T20:23:12.447 回答
1

用赋值运算符 (=) 替换此语句中的比较运算符 (==)

else if(a = b)
于 2013-11-12T20:24:44.333 回答
0

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

于 2013-11-12T20:31:00.017 回答
0

我认为

answer == bigger(num1, num2) 

应该

answer = bigger(num1, num2)
于 2013-11-12T20:23:33.323 回答
0

您正在混合相等 ( ==) 和赋值 ( =)。

于 2013-11-12T20:23:41.503 回答
0

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

于 2013-11-12T20:23:46.487 回答