作者nonopower (咩~~)
看板TransCSI
标题[问题] C语言递回的问题
时间Thu Jun 16 18:51:23 2011
程式如下:
# include <stdio.h>
main()
{
foo(7);
}
foo(int n)
{
if(n==10)
printf("done");
else
{ printf("%d",n);
foo(++n);
n--;
printf("%d",n);
}
}
答案是:7 8 9 done 9 8 7
我自己纸上算是789done9(因後面有一个n--)
揪竟後面的9 8 7是怎麽来的呢= =??
谢谢回覆~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.74.165.224
※ 编辑: nonopower 来自: 211.74.165.224 (06/16 19:14)
1F:推 jackaabb:每一个递回结束的时候不是还有一行prinft('%d',n);吗? 06/17 00:50
2F:推 TonyJih:printf出9之後回到8的回圈印出8,然後再回到7的回圈印出7 06/17 10:38
3F:→ TonyJih:然後才会回到main中做结束 06/17 10:39