当前位置:首页 » 编程语言 » c语言递归调用

c语言递归调用

发布时间: 2025-02-27 07:32:50

c语言函数的递归调用

递归必须满足两个条件:1.初始条件;2.递归函数.举个例子,求阶乘:有f(1)=1;f(n)=n*f(n-1)(n≥2)现在你可以实现如下:long func(int n)//定义函数
{
long f,s=0;
if(n==1)f=1;
else
{
f=func(n-1)*n; //这里就是一个递归的过程,自身调用自身
s=s+f;
}
return s;
} 假设你现在是求3!执行过程就是:f(3)=f(2)*3;然后调用自身:f(2)=f(1)*2;在调用遇到初始条件:f(1)=1;则f(3)=1*2*3=6

Ⅱ 为什么“C语言既可以嵌套定义又可以递归调用”是错的

C语言可以递归调用,但是(函数)不能嵌套定义。

例如:

intfact(intn)
{
if(n==0)
return0;
else
returnn*fact(n-1);
}

图中的递归调用是允许的。

而:

voidfoo()
{
voidbar()
{
//Somecode
}
}

这样在函数内定义函数是不允许的。


不过结构体是可以嵌套定义的,例如:

structtest{
inta;
structdemo{
charb;
};
};

这样在结构体内定义结构体,是可以的。

热点内容
tft新加坡服务器怎么下载 发布:2025-05-02 13:54:04 浏览:252
安卓系统为什么称中国系统 发布:2025-05-02 13:36:32 浏览:943
有什么软件可以让安卓手机变苹果 发布:2025-05-02 12:54:52 浏览:618
安卓手机怎么多软件切换 发布:2025-05-02 12:34:51 浏览:370
数控编程铣床实例 发布:2025-05-02 12:26:45 浏览:407
安卓手机如何登录部落冲突 发布:2025-05-02 12:20:54 浏览:336
国行e63服务器地址 发布:2025-05-02 12:20:45 浏览:361
液体压缩系数 发布:2025-05-02 12:19:58 浏览:271
王者安卓怎么收苹果的徒弟 发布:2025-05-02 12:19:13 浏览:405
jsp页面清除缓存 发布:2025-05-02 12:11:09 浏览:14