69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int age(int n)
{
int c;
if(n==1)
{
c=10;//如果n=1,c=10
}
else
{
c=age(n-1)+2;//n=n-1,得出age(n)值,然后加上2一起赋给c,因为main()中给定n的值为5,所以一直循环(递归)到n=1
/*age(1) = 10
age(2) = age(1) + 2 = 12;
age(3) = age(2) + 2 = 14;
age(4) = age(3) + 2 = 16;
age(5) = age(4) + 2 = 18;*/
}
return c;
}
void main()
{
printf("%d",age(5));
}
5 5(16+2)=18
4 4(14+2)=16
3 3(12+2)=14
2 2(10+2)=12
1(10)=10
#include <stdio.h>
int age(int n)
{
int c;
if(n==1) //n = 1时c==10
c=10;
else //当n!= 1时调用age(n - 1) + 2;
c = age(n-1) + 2;
return c;
}
void main()
{
//推导过程age(1) = 10
//age(2) = age(1) + 2 = 12;
//age(3) = age(2) + 2 = 14;
//age(4) = age(3) + 2 = 16;
//age(5) = age(4) + 2 = 18;
printf("%d",age(5));
}