问答详情
源自:5-9 递归函数练习

运行结果出来的时候,会多出现一组数据 这是为什么?

#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;

}


提问者:Provencechen 2015-06-09 21:54

个回答

  • chavin
    2015-06-09 22:36:12

    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);


  • qweasd199612223
    2015-06-09 22:02:42

    奖建议】建议内容