作者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