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

作者: povertytrap (povertytrap)   2016-03-12 19:32:58
各為前輩
在下是要考國家身障考試資訊四等的考生(第三年.........)
我寫了普考、身特、地特、鐵路等考試的考古題,偏偏這題我沒有頭緒
這是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))這就是運算子超載
如果用文字解答我這樣說
可以將+-*/等運算子利用其他方法表示,再舉上方那例子可以嗎?
作者: testPtt (測試)   2016-03-12 19:47:00
考你堆疊 有的書有教 補習班必教
作者: jackalwei (旅人)   2016-03-12 20:11:00
樓上正解,資結有教到,我記得那時候還要畫步驟
作者: bibo9901 (function(){})()   2016-03-12 20:21:00
中序轉後序
作者: povertytrap (povertytrap)   2016-03-12 22:31:00
我知道這個,中序後序流程圖我也會畫,我再回去翻書過兩天在貼程式碼給各位幫忙看一下(資結知道觀念但少實作)因為我google的這份解答沒用到那概念(寫超短超簡單)才想說有沒有簡單直觀一點非中序作法
作者: fatrabitree (胖兔子)   2016-03-12 23:09:00
用while去掃,檢查算式有沒有*/,有就算,沒有就+-算完把對應的結果放回去,然後符號跟數字刪掉
作者: s25g5d4 (function(){})()   2016-03-13 03:01:00
https://jsfiddle.net/so45oy1z/ 當 pseudo code 看吧還是看不懂就看註解,理解我寫的策略但是這只適用於加減乘除,只要遇到括號就不可能這樣寫了轉前序/後序才是正規的做法
作者: povertytrap (povertytrap)   2016-03-13 10:30:00
雖然對javascript不熟,還是謝謝樓上大大,等晚上回宿舍在翻資結書實作中序看看
作者: noodleT (麵T)   2016-03-13 12:15:00

Links booklink

Contact Us: admin [ a t ] ucptt.com