Re: [問題] C的經典計算機題目

作者: povertytrap (povertytrap)   2016-03-15 17:58:03
各位前輩以下是我的流程圖跟程式碼
http://imgur.com/d0yprce
http://ideone.com/rjbx8a 詳細註解
想請問我的程式碼邏輯是否不對? 可以編譯可是執行卻會卡住
我是以兩個陣列兩個堆疊去放運算子跟運算元也邊放邊算
也感謝上篇兩位大大提供的兩種code、巴哈那篇我看不太懂、javascript判斷那我有參考
因為我覺得還是照自己的寫法比較有感覺,所以在貼上來詢問我是哪邊不對
請各位前輩指點一下
作者: Caesar08 (Caesar)   2016-03-15 21:57:00
給你的努力一個推
作者: yvb   2016-03-16 01:25:00
好幾個 i+1; (Line 50, 68...) 的意思是...?
作者: povertytrap (povertytrap)   2016-03-16 01:58:00
i是用來掃str位置的,i+1就是前進下一位置
作者: suwako   2016-03-16 07:47:00
那應該是要寫i++或++i吧 寫i+1沒有任何作用阿你push是輸入char 後面的計算會沒辦法算然後你與其畫流程圖 不如在程式碼裡面加註解 我看好久才看懂你在寫什麼
作者: povertytrap (povertytrap)   2016-03-16 13:05:00
請問一下,i+1不就是i++嗎?push丟字元沒錯啊?push放運算元字元pop再將字元轉成數字丟出ans=pop值去做計算我改成i++後可執行玩到結果卻答案不對@@我如果要用i+1是否應該寫i=i+1,我忘了在哪看過i+1寫法我有放詳細註解了
作者: suwako   2016-03-16 13:38:00
i+=1; ans=pop()*pop()的部份 ans會是計算後的"數值"既然push要丟字元 你後面放push(ans)怎麼會對呢?然後你的註解沒有解釋到運行的細節 像是pop()就完全沒解釋另外 我建議不要直接對字元做運算 你可以用strtol將字元轉換成數字 這樣也同時可以解決超過1個位數的問題
作者: Caesar08 (Caesar)   2016-03-16 14:10:00
i+1與i++不一樣。++i, i++, i=i+1, i+=1這些要搞清楚
作者: povertytrap (povertytrap)   2016-03-16 14:18:00
謝謝suwako完全了解了,我在修看看Caesar08大++i, i++我知道差別,i+=1我記得就是i=i+1不是嗎?
作者: Caesar08 (Caesar)   2016-03-16 14:52:00
是的。所以通常i+=1與i=i+1都會寫成++i

Links booklink

Contact Us: admin [ a t ] ucptt.com