[問題]有關迷宮的問題

看板C_and_CPP (C/C++)作者 (GB原人)時間15年前 (2010/11/07 15:30), 編輯推噓0(0010)
留言10則, 3人參與, 最新討論串1/1
題目是這樣 有隻機器人迷失在一個迷宮中,這隻機器人有電池的限制(energy) 寫一個程是幫她找尋最佳的路徑,使得energy耗費最少 X:代表不能走 0~9:走一格消耗的能量 B:代表能量會加10 S:代表起點 G:代表終點 input: energy mazeX mazeY maze (energy為機器人的energy,mazeX代表row的size大小,mazeY代表column的大小, maze為迷宮的樣子) output: cost of the best path: remaining_energy or can not reach the goal ex: input: 50 10 10 XXXXXXXXXX XS1111BXXX X2XXXXXXXX X2XXXXXXXX X2XXXXXXXX X2XXXXXXXX X9999999XX X1XXXXX1XX X1XXXXXGXX X2222222XX output: cost of the best path: 19 我太弱了~這題我卡了好幾天都想不出來 output一直卡在segmentation fault上 我的想法是寫一個cost的矩陣 然後用遞迴 go(S,G)找不到就CALL go(S附近的點,g)然後energy變成energy-鄰近那一點的cost 我的CODE(寫得很長):http://codepad.org/cBCCWNrH 我跑出來的output一直是這樣 0 0 -99999 -1 0 -99999 -2 0 -99999 -3 0 -99999 -4 0 -99999 -5 0 -99999 . . . . . . -138 0 -99999 -139 0 -99999 -140 0 -99999 -141 0 -99999 -142 0 -99999 -143 0 -99999 -144 0 -99999 -145 0 -99999 -146 0 -99999 -147 0 -99999 -148 0 -99999 Segmentation fault 怎麼改程式都一樣QQ 都是只在row減少,我想用遞迴把所有解跑一遍去比較 找出消耗最少energy的解然後output出來 希望有人可以跟我說的邏輯錯誤在哪 感謝~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.1.87

11/07 15:52, , 1F
可以講一下為啥範例是19嗎?
11/07 15:52, 1F

11/07 16:02, , 2F
給樓上,因為輸出的是「剩下的能源」;最佳路徑應該是先
11/07 16:02, 2F

11/07 16:02, , 3F
走右邊取得E罐之後回原點走下面222的那條路
11/07 16:02, 3F

11/07 16:05, , 4F
然後建議原PO用置底文的網站貼一下程式碼...
11/07 16:05, 4F

11/07 16:10, , 5F
抱歉~第一次在這PO文~下次改進
11/07 16:10, 5F
※ 編輯: crazyguitar 來自: 111.248.1.87 (11/07 16:12) ※ 編輯: crazyguitar 來自: 111.248.1.87 (11/07 16:17)

11/07 16:16, , 6F
你的 input 那邊多了一次 getchar() 耶...
11/07 16:16, 6F

11/07 16:16, , 7F
我想你是想要讀掉每行末的換行,不過應該要放在外面的for
11/07 16:16, 7F

11/07 16:20, , 8F
因為input要求讀一個按enter一次,我把getchar()
11/07 16:20, 8F

11/07 16:21, , 9F
放在裡面
11/07 16:21, 9F

11/07 16:22, , 10F
感謝2樓
11/07 16:22, 10F
文章代碼(AID): #1CrbMfU6 (C_and_CPP)
文章代碼(AID): #1CrbMfU6 (C_and_CPP)