[問題] C語言遞迴的問題

看板TransCSI作者 (咩~~)時間14年前 (2011/06/16 18:51), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
程式如下: # 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)

06/17 00:50, , 1F
每一個遞迴結束的時候不是還有一行prinft('%d',n);嗎?
06/17 00:50, 1F

06/17 10:38, , 2F
printf出9之後回到8的迴圈印出8,然後再回到7的迴圈印出7
06/17 10:38, 2F

06/17 10:39, , 3F
然後才會回到main中做結束
06/17 10:39, 3F
文章代碼(AID): #1D-U0kCu (TransCSI)