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

阶乘顺序问题

#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语言入门
  • 参与学习       926018    人
  • 解答问题       20793    个

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

进入课程

阶乘顺序问题

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