C语言递归函数问题# include void main(){int age(int n);printf("%d\n",

学习 时间:2026-04-03 12:45:03 阅读:1939
C语言递归函数问题# include void main(){int age(int n);printf("%d\n",age(5));}int age(int n);{int c;if (n==1)c=10;elsec=age(n-1)+2;return(c);}谁能帮我仔细分析一下main程序调用age函数时,c=age(n-1)+2;return(c);是如何返回age(1)的值,age(2)值,age(3)值,age(4)值的.

最佳回答

辛勤的保温杯

机灵的薯片

2026-04-03 12:45:03

好的我帮你你分析以下你的程序:1 调用是age(5) 它再调用age(4),然后返回age(4)+22 age(4)过程中调用age(3),然后返回age(3)+23 在age(3)过程中调用age(2),然后返回age(2)+24 在age(2)过程中调用age(1),然后返回age(1)+25 在age(1)过程中,直接返回10的值。由上过程可以看出递归深度是5,那么:age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10所以 age(5)=18这仅仅是一个单向递归,深度是单向延伸的。还有向广度延伸的

最新回答共有2条回答

  • 威武的咖啡豆
    回复
    2026-04-03 12:45:03

    好的我帮你你分析以下你的程序:1 调用是age(5) 它再调用age(4),然后返回age(4)+22 age(4)过程中调用age(3),然后返回age(3)+23 在age(3)过程中调用age(2),然后返回age(2)+24 在age(2)过程中调用age(1),然后返回age(1)+25 在age(1)过程中,直接返回10的值。由上过程可以看出递归深度是5,那么:age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10所以 age(5)=18这仅仅是一个单向递归,深度是单向延伸的。还有向广度延伸的

上一篇 描写听雷的句子

下一篇 even the most-(every day)activities can seem important.根据括号的