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/11/05 18:42:04
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
这仅仅是一个单向递归,深度是单向延伸的.还有向广度延伸的