1樓:匿名使用者
首先,6/2等於3滿足判斷條件,遞迴呼叫fun(3),3/2等於1,也滿足條件,遞迴呼叫fun(1),1/2等於0不滿足條件輸出x的值1,回到上次呼叫的地方,輸出上一次x的值3,再回到最初呼叫的地方輸出x的值6,其實關鍵是遞迴呼叫的原理,可以再看看書上呼叫與返回的層次結構,手機打字還是有點慢了!
2樓:
函式的遞迴呼叫順序是:
fun(6),fun(3),fun(1)
子函式中printf被執行的順序是從呼叫的最內層開始的:
fun(1)--輸出1--fun(1)結束,返回進入fun(3)fun(3)--輸出3--fun(3)結束,返回進入fun(6)fun(6)--輸出6--fun(6)結束,返回進入main,輸出換行,程式結束
所以輸出正是 1 3 6 。
這個例項真是簡單有效地說明了遞迴函式的工作過程。想明白就知道遞迴是怎麼工作的啦。
3樓:匿名使用者
這個就不能執行,函式沒有型別,另外如果有型別的話也不會有值,是個死迴圈
c語言問題,C語言問題?
include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...
c語言問題,C語言問題?
char的範圍是 128 127的 你362就溢位了嘛 是這樣的 0362 0是表示8進位制 於是362在10進位制下是242 242溢位了 128 127 於是結果變成242 128 128 14 要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。整數在記憶體中是以補碼的形式存取的。c 036...
C語言問題C語言問題,C語言小問題段錯誤是什麼
str2num char p num num k return num c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock printf n return 0 c語言小...