[問題] 中置式變後置式

看板C_and_CPP作者 (嘎樂 K.O)時間9年前 (2015/04/14 23:19), 9年前編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我寫了一個中置式轉後置式 但我測試了後 一直跑出亂碼 我不知道是哪裡錯了 ~ 餵入的資料(Input): (300+23)*(43-21)/(84+7) 預期的正確結果(Expected Output): 30023+4321-*847+/ 錯誤結果(Wrong Output): 一堆亂碼 但我試過只打一個數字 是對的 錯應該是位於符號運算那邊 程式碼(Code):(請善用置底文網頁, 記得排版) http://ideone.com/rw14lw 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.168.205.116 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1429024750.A.AFC.html

04/15 02:18, , 1F
while(cmp(str[i],stack[top-1])==0) 忘了檢查stack是否為空
04/15 02:18, 1F
哈哈 謝囉~ 也就是說我必須加上一行if(stack[top]==' ') 好像還是怪怪的 還是會有亂碼出現 ※ 編輯: november1121 (118.168.205.116), 04/15/2015 23:08:08

04/16 02:25, , 2F
你進到迴圈前有檢查 top!=0,為甚麼在迴圈裡要用奇怪的條件呢
04/16 02:25, 2F

04/16 13:26, , 3F
cmp那段應該改成 只要stack的top優先序大於等於現在的
04/16 13:26, 3F

04/16 13:26, , 4F
那就可以pop
04/16 13:26, 4F
YA~~~謝謝兩位大大 我成功完成了:)) ※ 編輯: november1121 (118.168.205.116), 04/16/2015 20:27:15
文章代碼(AID): #1LBI_khy (C_and_CPP)