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

看板C_and_CPP作者 (povertytrap)時間8年前 (2016/03/12 19:33), 8年前編輯推噓3(3014)
留言17則, 7人參與, 最新討論串1/2 (看更多)
各為前輩 在下是要考國家身障考試資訊四等的考生(第三年.........) 我寫了普考、身特、地特、鐵路等考試的考古題,偏偏這題我沒有頭緒 這是97年身特4等的題目,也是典型的寫簡易計算機題目 請寫一段程式可接收由鍵盤輸入之一行算數四則運算之式子,例如5*3+8/2-7,並將 其運算結果顯示在螢幕上。(40 分) 附註說明: 1.此行算數四則運算式子之數字將只會是正整數。 2.此行算數四則運算式子之運算符號將只會有+(加)、-(減)、*(乘)、/(除)。 3.此行算數四則運算式子不會有括號。 4.此行算數四則運算式子之長度將不超過25。 以下是我的程式碼 http://ideone.com/MCkyx6 我知道如何輸入算式且由左而右算完(就是沒判斷運算子優先權) 我卡在不知如何實作先*/在+- 我有事過先算*/並把*/結果放在陣列,且宣告一個陣列放+- 在呼叫addsub函數去做+-,後來我發現我做不出 我手上有google到此題的解答(可是看不懂.........) 我個人還是希望能自己解出屬於自己的寫法 希望有前輩可以給我點提示 如需要線上溝通我有skype、Google Hangouts等工具可提供 時間也可配合 附帶一提 多型我了解 今天考古題有題要我解釋運算子超載 wiki有提到 a+b*c可寫成add(a,multiply(b, c))這就是運算子超載 如果用文字解答我這樣說 可以將+-*/等運算子利用其他方法表示,再舉上方那例子可以嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.170.69.136 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1457782381.A.1A5.html

03/12 19:47, , 1F
考你堆疊 有的書有教 補習班必教
03/12 19:47, 1F

03/12 20:11, , 2F
樓上正解,資結有教到,我記得那時候還要畫步驟
03/12 20:11, 2F

03/12 20:21, , 3F
中序轉後序
03/12 20:21, 3F

03/12 22:31, , 4F
我知道這個,中序後序流程圖我也會畫,我再回去翻書
03/12 22:31, 4F

03/12 22:33, , 5F
過兩天在貼程式碼給各位幫忙看一下(資結知道觀念但少
03/12 22:33, 5F

03/12 22:33, , 6F
實作)
03/12 22:33, 6F

03/12 22:35, , 7F
因為我google的這份解答沒用到那概念(寫超短超簡單)
03/12 22:35, 7F

03/12 22:36, , 8F
才想說有沒有簡單直觀一點非中序作法
03/12 22:36, 8F

03/12 23:09, , 9F
用while去掃,檢查算式有沒有*/,有就算,沒有就+-
03/12 23:09, 9F

03/12 23:09, , 10F
算完把對應的結果放回去,然後符號跟數字刪掉
03/12 23:09, 10F

03/13 03:01, , 11F
https://jsfiddle.net/so45oy1z/ 當 pseudo code 看吧
03/13 03:01, 11F

03/13 03:01, , 12F
還是看不懂就看註解,理解我寫的策略
03/13 03:01, 12F

03/13 03:02, , 13F
但是這只適用於加減乘除,只要遇到括號就不可能這樣寫了
03/13 03:02, 13F

03/13 03:04, , 14F
轉前序/後序才是正規的做法
03/13 03:04, 14F

03/13 10:30, , 15F
雖然對javascript不熟,還是謝謝樓上大大,等晚上回宿舍
03/13 10:30, 15F

03/13 10:31, , 16F
在翻資結書實作中序看看
03/13 10:31, 16F
※ 編輯: povertytrap (118.170.69.136), 03/13/2016 10:32:16

03/13 12:15, , 17F
03/13 12:15, 17F
文章代碼(AID): #1Mu_vj6b (C_and_CPP)
文章代碼(AID): #1Mu_vj6b (C_and_CPP)