1楼:岔路程序缘
1、那个return(c);中的c,是前面的表达式计算出来的。
所以,表达式是有意义的。
2、age(5)是用回5做参数调用答age()函数。
第一次调用时n=5,c=age(4)+2,这时再调用age函数;
第二次调用时n=4,c=age(3)+2,用到age(3),需要再调用;
第三次调用时n=3,c=age(2)+2,用到age(2),继续调用;
第四次调用时n=2,c=age(1)+2,用到age(1),再调用;
第五次调用时n=1,c=10,不再调用了,返回c即10,作为age(1)的值;
程序返回第四次调用的运算公式中:c=age(1)+2=10+2=12,返回12作为age(2)的值;
程序返回第三次调用的公式中:c=age(2)+2=12+2=14,返回14作为age(3)的值;
程序继续返回第二次调用的公式c=age(3)+2=14+2=16,返回作为age(4)的值。
程序返回第一次调用的公式c=age(4)+2=16+2=18,返回作为age(5)的值。
程序返回主程序,打印age(5)的值18。
c语言,整数转成字符串,递归看不懂,为什么调用完自己之后会再次调用?求解
2楼:明哥归来
输入的number是1234
main()中调用convert(number);进入了转换函数。
void convert(int n)
1.第一次进入convert( int n)函数时,n=1234 , i=n/10=123 非0,因此递归调用convert(123); 这时的n=1234会被压入栈。
2.运算convert(123)时, n=123 , i=n/10=12非0,因此递归调用convert(12); 这时的n=123会被压入栈。
3.运算convert(12)时, n=12 , i=n/10=1非0,因此递归调用convert(1); 这时的n=12会被压入栈。
4.运算convert(1)时, n=1 , i=n/10=0,因此,输出putchar(n%10+'0'); 1(字符1)。函数返回。
5.n=12出栈,输出putchar(n%10+'0'); 2(字符2)。函数返回。
6.n=123出栈,输出putchar(n%10+'0'); 3(字符3)。函数返回。
7.n=1234出栈,输出putchar(n%10+'0'); 4(字符4)。函数返回。
栈空,函数返回到主函数。
c语言的递归调用怎么理解,更容易学?我看不懂呢。求高人指教!
3楼:匿名用户
一个函数自己bai调用自己。
通常du最简单的例子是zhi
:计算阶乘,即dao 5! = 5*4*3*2*1int factorial(int n) else}把自己想象版成电脑,试一试 factorial(5)就会发现权 return 5*4*3*2*1remark:
递归函数计算往往比较慢,因太频繁地自己调用自己,很多情况下会有更好的算法哦。
4楼:匿名用户
递归的结构其实很简单,两部分组成
1、结束递归的条件,要不然会无限递归
专下去2、就是递归的公属式,以什么样的方式调用自己还有比较复杂的递归,就是双线和多线递归
这个就是a调用b,b再调用c,c再调用a,等等的方式多个函数之间的互相调用
每个函数都至少有这两部分组成
5楼:莫给老子拖堂了
重复调用本身(求阶乘就是不停滴调用本身函数,最后逐个返回)
6楼:天下独孤
从阶乘那开始理解,类似阶乘
c语言函数递归调用看不懂了,求教
7楼:尛芯の铱籟
编程语言中,函数func(type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。在数学上,关于递归函数的定义如下:
对于某一函数f(x),其定义域是集合a,那么若对于a集合中的某一个值x0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。
c语言递归程序,看不懂,求解释!!!
8楼:匿名用户
用我自己的话来解释,你可以看作void f(int n)被复制了很多份(每一次递归都复制了一份,递归这个词不知道要不要再解释……)当你在void f(int n)函数内调用void f(int n)时,函数内调用的void f(int n)是临时从原f中复制的一个新的函数。所以每一次递归都需要占用新的资源(所以递归如果一直不结束的话,最后会造成栈溢出)。
如果你了解c的底层模型,递归的概念就自然而然理解了。
9楼:我混你也混
#include "stdio.h"
void f(int n)
}main()
10楼:匿名用户
建议使用开发工具,调试运行,了解函数执行步骤。
这是个比较简单的递归调用。
11楼:匿名用户
int i; 这个? i 用到**?想帮你看看。。
C语言递归的问题,递归结束之后为什么还要倒过来一遍
1楼 匿名用户 void函数是可以不写return语句的,没有return也是return。 2楼 匿名用户 函数是否要return 一个值,是看逻辑需求的需要的 现在这个函数定义没有返回,而是直接打印出来 c语言的递归问题 为什么会倒过来执行一次 3楼 潇潇小百 void up and down ...
c语言中的每个基本符号都是以什么结束的
1楼 金色潜鸟 你说的基本符号是不是指英文 token 的意思 如果是,那么可说它以空格结束 或用空格分隔。 例如 a b c d 上面基本符号有 字母a b c d 符号 适用上 也允许写成 a b c d 编译器会按语法自己做 词法 和 句法 和 文法 分析。 c语言程序中必须以什么作为结束标志...
大神帮忙看看这道c语言的题怎么写
1楼 匿名用户 include stdio h void main int j k sum 0 for k 2 k 1000 k sum 0 for j 1 j 2楼 匿名用户 include int ws int a if sum a return 1 else return 0 void mai...