作者povertytrap (povertytrap)
看板C_and_CPP
標題[問題] C的經典計算機題目
時間Sat Mar 12 19:32:58 2016
各為前輩
在下是要考國家身障考試資訊四等的考生(第三年.........)
我寫了普考、身特、地特、鐵路等考試的考古題,偏偏這題我沒有頭緒
這是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
→ testPtt: 考你堆疊 有的書有教 補習班必教 03/12 19:47
→ jackalwei: 樓上正解,資結有教到,我記得那時候還要畫步驟 03/12 20:11
→ bibo9901: 中序轉後序 03/12 20:21
→ povertytrap: 我知道這個,中序後序流程圖我也會畫,我再回去翻書 03/12 22:31
→ povertytrap: 過兩天在貼程式碼給各位幫忙看一下(資結知道觀念但少 03/12 22:33
→ povertytrap: 實作) 03/12 22:33
→ povertytrap: 因為我google的這份解答沒用到那概念(寫超短超簡單) 03/12 22:35
→ povertytrap: 才想說有沒有簡單直觀一點非中序作法 03/12 22:36
→ fatrabitree: 用while去掃,檢查算式有沒有*/,有就算,沒有就+- 03/12 23:09
→ fatrabitree: 算完把對應的結果放回去,然後符號跟數字刪掉 03/12 23:09
→ s25g5d4: 還是看不懂就看註解,理解我寫的策略 03/13 03:01
→ s25g5d4: 但是這只適用於加減乘除,只要遇到括號就不可能這樣寫了 03/13 03:02
推 s25g5d4: 轉前序/後序才是正規的做法 03/13 03:04
→ povertytrap: 雖然對javascript不熟,還是謝謝樓上大大,等晚上回宿舍 03/13 10:30
→ povertytrap: 在翻資結書實作中序看看 03/13 10:31
※ 編輯: povertytrap (118.170.69.136), 03/13/2016 10:32:16