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

阶乘顺序问题

#include <stdio.h>
int sum(int i)
{
    int result;
    if(i<0)
    {
        printf("%s\n","输入错误!");
        return 0;
    }
    else if(i==0 || i==1)
    {
        result = 1;
    }
    else
    {
        result = i*sum(i-1);
    }
    printf("%d\n",result);
    return result;
}
int main()
{
    int i = 5;
    printf("和为%d\n",sum(i));
    return 0;
}
运行结果
1
2
6
24
120
阶乘顺序为何不是倒着输出?

正在回答

1 回答

对于递归函数,我们是先一步一步的加进去的,所以当我们输出时应当先从后面输出。毕竟我们在前面算时都是个函数,有未知数,当到最后后有值了,于是一个一个输出来。便出现了一个从正着输出的现象。可以看下一节的图,很有道理,不行就用编译器,单步执行。希望能帮你。

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       927002    人
  • 解答问题       21533    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

阶乘顺序问题

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号