[問題] 遞迴程式一問

作者: asd860079 (U戲boy)   2019-04-02 15:31:57
先上完整程式碼:https://pastebin.com/Y4x6Mut9
這是我在網上找到的一個 八皇后問題 的解法
主要是想問 line 31 的遞迴程式
https://imgur.com/D0N0kEb.jpg
照理說 走到這個if之後,棋盤就放滿了
就算把剩下的迴圈跑完
程式應該也沒機會進到 else 裡面繼續放棋子了
但是我用 Visual Studio 跑 Debug 發現他把for迴圈跑完後
他會從line 55 跳到 line 52,然後 n 的值會從7跳到6
(假設input是8)
照理說不應該是 for 迴圈跑完 put()函式也就跑完
然後回到main繼續跑了嗎?
想請問是什麼樣的邏輯讓他可以這樣跑然後找完全部的解才跑回main?
以上,先感謝各位大大
作者: asd860079 (U戲boy)   2019-04-02 15:33:00
對了 要在VS 2015以上跑的話再記得改成scanf_s
作者: firejox (Tangent)   2019-04-02 16:16:00
是put(n=7)跑完 put(n=6)還沒
作者: longlongint (華哥爾)   2019-04-02 19:24:00
debugger 可以印 call stack/backtrace 出來看看
作者: TitanEric (泰坦)   2019-04-02 21:29:00
for loop跑完回上一層 backtracking

Links booklink

Contact Us: admin [ a t ] ucptt.com