if(N)和if(N>0)的区别

问题遇到的现象和发生背景

https://pintia.cn/problem-sets/14/problems/740

问题相关代码,请勿粘贴截图
int Factorial( const int N )
{
    int sum=1;
    if(N==0)
        return 1;
    if(N>0){
        int i;
        for(i=1;i<=N;i++)
            sum*=i;
        return sum;
    }
    return 0;
}

运行结果及报错内容

如果改成if(N),N<0的情况不能return 0;

我的解答思路和尝试过的方法
我想要达到的结果

if(N)和if(N>0)有什么区别

if (N)表示只要N不是零(非零,包括N>0或N<0两种情况),都会执行if语句里的语句,
if (N>0)表示只有当N>0时,才会执行if语句里的语句。