为了账号安全,请及时绑定邮箱和手机立即绑定

太粗心了!!!居然没有写return result;结果是“5的阶乘=-1929224960”

自己居然没有写return result;

还在那儿傻乎乎的找了半天!!!

唉,太太粗心了!!

#include<stdio.h>

//自定义阶乘函数
int factorial(int n)
{
    int result;
    if(n<0)
    {
        printf("输入错误!\n");
        return 0;
    }
    else if(n==0 || n==1)
    {
        result = 1;
    }
    else
    {
        result = factorial(n-1)*n;
    }
}

int main()
{
    int n=5;
    printf("%d的阶乘=%d\n",n,factorial(n));
    return 0;
}

但是输入int n=不同的值,都有不同的结果输出。绝对值还都是很大的数字!

1的阶乘=-1984603552

2的阶乘=325760192

3的阶乘=977280576

4的阶乘=-385844992

5的阶乘=-1929224960

6的阶乘=1309552128

(以上结果当然不是真正的阶乘!!)

不知道是怎么运行的!

谁能给解释下?

正在回答

2 回答

;    ....

0 回复 有任何疑惑可以回复我~

19花括号后应有return result

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

太粗心了!!!居然没有写return result;结果是“5的阶乘=-1929224960”

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信