#include <stdio.h>
int age(int n)
{
int i;
if(n==1)
return 10;
else
{
i=age(n-1)+2;
printf("第%d个人的岁数为%d。\n",n,i);//提问:为什么输出的时候会重复?
return i;
}
}
main()
{
int i=age(5);
printf("第五个人的岁数为%d岁。",age(5));
return 0;
}
int i=age(5);
printf("第五个人的岁数为%d岁。",age(5));
return 0;
因为当int i = age(5) 的时候,在age递归方法里面输出了一次。但是在printf("第五个人的岁数为%d岁。",age(5));里面age(5)又输出了一次。所以重复输出了。你要是想只一次的话,可以把int i = age(5)去掉,或者printf("第五个人的岁数为%d岁。",age(5));改成printf("第五个人的岁数为%d岁。",i);
奖建议】建议内容