C语言中如何从递归函数中退出呢!

如何从递归函数退出... 如何从递归函数退出 展开
 我来答
tattackor
推荐于2017-10-12 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:891万
展开全部
  1. 递归函数定义:编程语言中,函数Func()直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。

  2. 由于递归函数不断调用自己的特性,必须使用边界条件约束,来退出递归,停止迭代,否则是一个不断增大的死循环。

  3. 在C语言中,一般采用 return value;的方式退出本次递归,其中value为返回值,对于没有返回值的函数,return即可。

  4. 在C语言中,若是需要直接终止整个递归,包括主程序,可以采用 exit()函数终止。

_whales
2013-05-15 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:507万
展开全部
递归是对递推关系的模拟;

你的问题,有什么样的递推结构,在什么情况下,不需要递推,可以直接得出结论。

了解了这些情况,你就可以着手写代码了。

这样的代码,自然就,以递归函数实现,最方便了。

1)那种可以,直接解决问题的情况,自然就是直接返回的条件了。
2)那种需要递推,才可以解决的,自然就写成,递归调用了。
3)那种实际的,执行代码,自然就夹在,递归调用之间,写出来了。

写递归函数,主要分析,
1)何时结束
2)何时递归调用
3) 执行任务的代码写在哪里。

递归调用本身,并不是解决,实际问题的方案。只是解决复杂结构问题的,一种方法。
解决实际问题时,要结合所执行的任务来写代码。

比如,树的遍历。
递归只是个框架,执行遍历本身要干什么,比如打印节点数据,这才是递归函数的任务。
一个框架搭起来了,可以解决一批相同结构的问题。
然而一个空的框架,什么问题也解决不了。即使搭的再好,也无用。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ok洛阳水席
2013-05-15 · TA获得超过1839个赞
知道小有建树答主
回答量:580
采纳率:50%
帮助的人:527万
展开全部
递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
我们要注意的就是在使用递归的时候,必须有一个明确的递归结束条件,称为递归出口。另外具体问题具体分析,给个简单的例子吧
#include <stdio.h>
#include <stdlib.h>

float myfunction(int n,int x)
{
if (0 == n)
{
return 1;
}
else if (1 == n)
{
return x;
}
else
{
return ((2 * n - 1) * x - myfunction(n - 1 , x) - (n - 1) * myfunction(n - 2, x)) / n;
}
}

int main(int argc, char *argv[])
{
int n,x;
float result;
printf("please inputa n,x:");
scanf("%d,%d",&n,&x);
result = myfunction(n,x);
printf("the result is : %f\n",result);
system("pause");
return 0;
}
此程序出处http://zhidao.baidu.com/question/356821940.html

LZ可自行揣测。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
macinsh
2013-05-15 · TA获得超过104个赞
知道答主
回答量:106
采纳率:0%
帮助的人:138万
展开全部
需要设置一个退出的条件,比如
f(int i)
{
if(i==0)
return;
else
{
f(i-1);

}

}

这样当i递减到0的时候,就不会再继续递归了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ysdu2
2013-05-15
知道答主
回答量:7
采纳率:0%
帮助的人:8936
展开全部
对递归函数中的某一关键变量设置阈值条件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式