Devilinside. 发表于 2020-9-19 19:54:41

这个递归题为什么会这样输出啊?

这个不是应该在第一个 0 处 就截止了吗??为什么还会出现 0 0 1 2 3 4 5???

sunrise085 发表于 2020-9-19 21:58:38

本帖最后由 sunrise085 于 2020-9-19 21:59 编辑

哎,又遇到一个。。。
很多人都会犯和你一样的错误,函数调用之后还需要返回啊。。。认为到0就结束的都是没想着返回。。。
你看 if 语句下面还有一句 printf 呢,这个print输出的是后半个
if 前的 printf 输出的是5 4 3 2 1 0 ,if 后面的printf 输出的是 0 0 1 2 3 4
自己在纸上写一下就知道了
记住一点,从哪里调用的函数,函数结束后就回到哪里
自己手写运行的时候,可以将数字调小一点,例如不用5,用2

baige 发表于 2020-9-19 22:14:12

递归之后会回溯

乐乐学编程 发表于 2020-9-20 10:53:01

sunrise085 发表于 2020-9-19 21:58
哎,又遇到一个。。。
很多人都会犯和你一样的错误,函数调用之后还需要返回啊。。。认为到0就结束的都是 ...

从哪里调用的函数,函数结束后就回到哪里

记住了,谢谢!

Devilinside. 发表于 2020-9-20 15:05:01

sunrise085 发表于 2020-9-19 21:58
哎,又遇到一个。。。
很多人都会犯和你一样的错误,函数调用之后还需要返回啊。。。认为到0就结束的都是 ...

谢谢
页: [1]
查看完整版本: 这个递归题为什么会这样输出啊?