[問題] 有關八皇后的類似題目

看板C_and_CPP作者時間11年前 (2014/12/10 22:20), 編輯推噓1(1022)
留言23則, 7人參與, 最新討論串1/1
小弟剛初學程式,遇到一題八皇后的題目,不過再多了城堡,題目是這樣的: 在一個(M+N) x (M+N) 的棋盤上放M個皇后 N 個城堡,皇后可走直走斜,城堡只能走直, 所有的棋子互相不能吃掉對方。 輸出有幾種合法的放法。 詳細題目連結:http://ppt.cc/hvpg 小弟的程式碼:http://codepad.org/M7fotRz1 我的輸出不管怎樣都是0,我已經想不到問題出在哪了, 身邊又沒有人可以討論(這是我因興趣學程式最大的阻礙), 只好上來請教各位前輩,我的程式碼有哪些錯誤不合理的地方呢, 我已經卡了好幾天了....萬分感謝,小弟資質駑鈍... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.163.194.16 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1418221241.A.650.html

12/10 23:04, , 1F
total=0; printf("%d\n",total);
12/10 23:04, 1F

12/10 23:04, , 2F
當然always吐出來是0啊
12/10 23:04, 2F

12/10 23:06, , 3F
你先練習基本功吧 從正確地寫一個函數開始
12/10 23:06, 3F

12/11 00:25, , 4F
41,57兩行似乎應該放在外一層/33,49可能會讀到陣列外面
12/11 00:25, 4F

12/11 00:27, , 5F
可是我定義total的地方不是使得total是global變數嗎,
12/11 00:27, 5F

12/11 00:29, , 6F
還是我仍須要用指標方式將total記憶體位置傳入function
12/11 00:29, 6F

12/11 01:14, , 7F
看錯了 global 應該沒問題 是條件不成立造成total++沒跑到
12/11 01:14, 7F

12/11 03:28, , 8F
同意 pika, 41,57應該沒問題, 33,49 row=1,col=0,i=0 就出界
12/11 03:28, 8F

12/11 03:29, , 9F
了. 另外三個條件 && 好像不太對
12/11 03:29, 9F

12/11 11:52, , 10F
猛一看以為是 mooc 結果真的是
12/11 11:52, 10F

12/11 13:52, , 11F
初學的話 儘量不要用global 很容易衍生問題
12/11 13:52, 11F

12/11 21:22, , 12F
謝謝各位的指教,所以我遞迴的流程順序沒有問題嗎?
12/11 21:22, 12F

12/11 21:23, , 13F
的確是mooc小弟資質不好,進度總是落後很多.....
12/11 21:23, 13F

12/11 21:53, , 14F
把三個條件式改成||跟遞迴終止條件不要加row==(M+N-1)
12/11 21:53, 14F

12/11 21:54, , 15F
答案就對了,但使我不太明瞭為啥遞迴終止條件多加了
12/11 21:54, 15F

12/11 21:54, , 16F
row==(M+N-1)反而是錯的呢,我是一行一行放城堡跟皇后的
12/11 21:54, 16F

12/11 21:55, , 17F
最後放完應該最後一行也是M+N-1才對啊
12/11 21:55, 17F

12/11 21:56, , 18F
加不加row應該都沒才對呀
12/11 21:56, 18F

12/11 21:56, , 19F
更正後的程式碼http://codepad.org/40p6GeOu
12/11 21:56, 19F

12/11 22:05, , 20F
各位前輩抱歉,我第一顆是從row=1開始放,所以最後放完
12/11 22:05, 20F

12/11 22:05, , 21F
是row==(M+N)才對
12/11 22:05, 21F

12/16 22:32, , 22F
看到題目,還在想是不是 NTHU MOOC 的內容
12/16 22:32, 22F

12/16 22:32, , 23F
結果看到連結,還真的是~~~真是太神奇了
12/16 22:32, 23F
文章代碼(AID): #1KY5QvPG (C_and_CPP)