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

来源:5-9 递归函数练习

Provencechen

2015-06-09 21:54

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

}


写回答 关注

2回答

  • 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

    奖建议】建议内容

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926020 学习 · 20793 问题

查看课程

相似问题