为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

}


正在回答

3 回答

简言之,要更精确用float

itdtipn

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


0 回复 有任何疑惑可以回复我~

奖建议】建议内容

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信