为什么我的程序在运行时仍输出“ 0”,即使它也不应该这样?

-6 c++ if-statement output

我对C ++很陌生,并且只是在使用if语句,所以我编写了这个程序:

#include <iostream>
using namespace std;
int getMax(int num1, int num2){

    if (num1>num2)
    {
        cout << num1 <<endl;
    }else{
        cout << num2 <<endl;
    }
    return EXIT_SUCCESS;
}

int main(){
    cout<<getMax(7,13)<<endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的getMax函数需要两个参数,并且应该输出2个数字中的较大者-在这种情况下为13。但是,不仅输出13,还输出0。为什么会这样?

Sla*_*ica 8

但是,不仅输出13,还输出0。为什么会这样?

因为在此语句中:

cout<<getMax(7,13)<<endl;
Run Code Online (Sandbox Code Playgroud)

您发送到呼叫cout结果,getMax()该结果是EXIT_SUCCESS宏,其值为0。

看起来您的getMax()函数应该返回最大值而不是打印它:

int getMax(int num1, int num2)
{
     return num1 > num2 ? num1 : num2;
}
Run Code Online (Sandbox Code Playgroud)

但您应该std::max()改用它,或者至少将您的函数重命名为printMax()