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;r
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/08 15:57:12
![C语言递归函数问题# include void main(){int age(int n);printf(](/uploads/image/z/2634019-43-9.jpg?t=C%E8%AF%AD%E8%A8%80%E9%80%92%E5%BD%92%E5%87%BD%E6%95%B0%E9%97%AE%E9%A2%98%23+include+void+main%28%29%7Bint+age%28int+n%29%3Bprintf%28%22%25d%5Cn%22%2Cage%285%29%29%3B%7Dint+age%28int+n%29%3B%2F%2A%E6%B1%82%E5%B9%B4%E9%BE%84%E7%9A%84%E9%80%92%E5%BD%92%E5%87%BD%E6%95%B0%2A%2F%7Bint+c%3Bif+%28n%3D%3D1%29c%3D10%3Belsec%3Dage%28n-1%29%2B2%3Breturn%28c%29%3B%7D%E8%B0%81%E8%83%BD%E5%B8%AE%E6%88%91%E4%BB%94%E7%BB%86%E5%88%86%E6%9E%90%E4%B8%80%E4%B8%8Bmain%E7%A8%8B%E5%BA%8F%E8%B0%83%E7%94%A8age%E5%87%BD%E6%95%B0%E6%97%B6%2Cc%3Dage%28n-1%29%2B2%3Br)
guwZ÷wP`5P9$ηs+B,ى x?eH@۸lBP3Eųy?w \=_th 1ם2:,7gE:R)mBHGF}@}b.;k;ܩ-]iVpi~GY^5,LC% sQ1G L8DԳO05_8l?SqMGeQ<Xwڰ$4B< =N.oՖ
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;r
C语言递归函数问题
# include
void main()
{
int age(int n);
printf("%d\n",age(5));
}
int age(int n);/*求年龄的递归函数*/
{
int c;
if (n==1)
c=10;
else
c=age(n-1)+2;
return(c);
}
谁能帮我仔细分析一下main程序调用age函数时,c=age(n-1)+2;
return(c);是如何返回age(1)的值,age(2)值,age(3)值,age(4)值的.
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;r
好的我帮你你分析以下你的程序:
1 调用是age(5) 它再调用age(4),然后返回age(4)+2
2 age(4)过程中调用age(3),然后返回age(3)+2
3 在age(3)过程中调用age(2),然后返回age(2)+2
4 在age(2)过程中调用age(1),然后返回age(1)+2
5 在age(1)过程中,直接返回10的值.
由上过程可以看出递归深度是5,
那么:age(5)=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(1)=10
所以 age(5)=18
这仅仅是一个单向递归,深度是单向延伸的.还有向广度延伸的