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

看板C_and_CPP作者 (povertytrap)時間8年前 (2016/03/15 17:58), 8年前編輯推噓3(3021)
留言24則, 4人參與, 最新討論串2/2 (看更多)
各位前輩以下是我的流程圖跟程式碼 http://imgur.com/d0yprce
http://ideone.com/rjbx8a 詳細註解 想請問我的程式碼邏輯是否不對? 可以編譯可是執行卻會卡住 我是以兩個陣列兩個堆疊去放運算子跟運算元也邊放邊算 也感謝上篇兩位大大提供的兩種code、巴哈那篇我看不太懂、javascript判斷那我有參考 因為我覺得還是照自己的寫法比較有感覺,所以在貼上來詢問我是哪邊不對 請各位前輩指點一下 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.25.119.5 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1458035886.A.DEB.html

03/15 21:57, , 1F
給你的努力一個推
03/15 21:57, 1F

03/16 01:25, , 2F
好幾個 i+1; (Line 50, 68...) 的意思是...?
03/16 01:25, 2F

03/16 01:58, , 3F
i是用來掃str位置的,i+1就是前進下一位置
03/16 01:58, 3F

03/16 07:47, , 4F
那應該是要寫i++或++i吧 寫i+1沒有任何作用阿
03/16 07:47, 4F

03/16 08:19, , 5F
你push是輸入char 後面的計算會沒辦法算
03/16 08:19, 5F

03/16 08:21, , 6F
然後你與其畫流程圖 不如在程式碼裡面加註解 我看好久才
03/16 08:21, 6F

03/16 08:22, , 7F
看懂你在寫什麼
03/16 08:22, 7F

03/16 13:05, , 8F
請問一下,i+1不就是i++嗎?push丟字元沒錯啊?
03/16 13:05, 8F

03/16 13:06, , 9F
push放運算元字元pop再將字元轉成數字丟出
03/16 13:06, 9F

03/16 13:07, , 10F
ans=pop值去做計算
03/16 13:07, 10F

03/16 13:09, , 11F
我改成i++後可執行玩到結果卻答案不對@@
03/16 13:09, 11F

03/16 13:15, , 12F
我如果要用i+1是否應該寫i=i+1,我忘了在哪看過i+1
03/16 13:15, 12F

03/16 13:15, , 13F
寫法
03/16 13:15, 13F
※ 編輯: povertytrap (163.25.119.4), 03/16/2016 13:16:38

03/16 13:17, , 14F
我有放詳細註解了
03/16 13:17, 14F

03/16 13:38, , 15F
i+=1; ans=pop()*pop()的部份 ans會是計算後的"數值"
03/16 13:38, 15F

03/16 13:39, , 16F
既然push要丟字元 你後面放push(ans)怎麼會對呢?
03/16 13:39, 16F

03/16 13:43, , 17F
然後你的註解沒有解釋到運行的細節 像是pop()就完全沒解釋
03/16 13:43, 17F

03/16 13:44, , 18F
另外 我建議不要直接對字元做運算 你可以用strtol將字元
03/16 13:44, 18F

03/16 13:45, , 19F
轉換成數字 這樣也同時可以解決超過1個位數的問題
03/16 13:45, 19F

03/16 14:10, , 20F
i+1與i++不一樣。++i, i++, i=i+1, i+=1這些要搞清楚
03/16 14:10, 20F

03/16 14:18, , 21F
謝謝suwako完全了解了,我在修看看
03/16 14:18, 21F

03/16 14:20, , 22F
Caesar08大++i, i++我知道差別,i+=1我記得就是i=i+1
03/16 14:20, 22F

03/16 14:20, , 23F
不是嗎?
03/16 14:20, 23F

03/16 14:52, , 24F
是的。所以通常i+=1與i=i+1都會寫成++i
03/16 14:52, 24F
文章代碼(AID): #1Mvzokth (C_and_CPP)
文章代碼(AID): #1Mvzokth (C_and_CPP)