C语言中return要返回到哪里? 10

下列函数#include<stdio.h>wetl(intn){if(n!=0){wrtl(n-1);printf("%d\n",n);}return;}是一个递归函数,... 下列函数 #include<stdio.h> wetl(int n) { if(n!=0) {wrtl(n-1);printf("%d\n",n); } return ; } 是一个递归函数,但是return是怎么返回的。 展开
 我来答
汤姆猫Miao
2012-11-28 · 超过11用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:21.8万
展开全部
递归就是一个函数调用该函数本身。。。。
但必须要有终止条件。。。。。
举上楼的例子:
wetl(int n)
{
if(n!=0) return wetl(n-1);
else
return n;

}

假若n=2;
n!=0
执行 wetl(n-1),也就是welt(1);//要清楚此时还未跳出wetl(2){。。。。。}这个函数,它处于等待之中;
1!=0;
执行 wetl(n-1),也就是welt(0);//要清楚此时还未跳出wetl(1){。。。。。}这个函数,它处于等待之中;
0=0;则执行return n;
此时要返回上一层 去完成welt(1);
完成welt(1);后返回上层 去完成welt(2);
完成welt(2);后返回上层 去完成welt(3);
此时回到了初始状态,结束

好好想想假若一个函数A里有两个其它函数B C,如果仅执行了B函数,那么A函数就算执行完了吗???还有B都未执行完可以直接跳到C函数吗???所以必须去执行完B函数,等B完成后,跳出B函数去完成C函数,A函数才算完成。
递归就是把上面的B函数换成A函数,即A函数里有两个函数A C,然后去执行
peopleipad
2012-11-28
知道答主
回答量:52
采纳率:0%
帮助的人:25.3万
展开全部
这指的是返回上一级,比如一个递归程序,从第三层返回到第二层;又比如一个普通的子程序,那就返回到主程序中去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浩海宏义D5
2012-11-28
知道答主
回答量:7
采纳率:0%
帮助的人:6.1万
展开全部
你这个递归写的有问题。
wetl(int n)
{
if(n!=0) return wetl(n-1);
else
return n;

}
应该这样写的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式