作者winterboy209 (鼕鼕)
看板C_and_CPP
標題[問題] 一個非常簡單的問題!
時間Tue Jul 6 20:25:58 2010
從檔案(c.txt)讀入一算術四則運算式,計算並列印其結果。
(1)運算式包含+-*/四則算術運算
(2)輸入數字可能包含小數點
(3)不分+-*/一律由左而右依序計算
(4)運算式的最後結果依四捨五入後取整數值
以下幾個範例可供參考測試之:
範例輸入一:
15*3/8*10/3=
範例輸出一:
15*3/8*10/3=19
範例輸入二:
6.53*5+3-8=
範例輸出二:
6.53*5+3-8=28
遇到的問題: (題意請描述清楚)
範例輸入改變了:變成沒有'='
15*3/8*10/3
while(op!='='){
這一行我不管如何改就是不行!
希望得到的正確結果:
15*3/8*10/3
Ans=19
程式跑出來的錯誤結果:
一直跑-8-8-8-8-8-.....
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
windows c 6.0
有問題的code: (請善用置底文標色功能)
http://paste.plurk.com/show/277435/
補充說明:
有試過加寫程式 想法是num 或是 op抓到空白時就break 跳出while迴圈
but失敗了 ..
有請各位大大指點。3Q
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.162.115.222
→ loveme00835:這要看你檔案的內容, 直接結束還是最後有換行 07/06 20:36
→ joefaq:lex&&yacc 07/06 20:38
→ a5480277:我真的稿不懂你在問什麼耶...... 07/06 20:46
→ winterboy209:檔案的內容是直接結束! 請問有關鍵字嗎? 07/06 20:54
→ winterboy209:我試過'\0' 跟'\n' 放在while(op!=' '){ 但是失敗了 07/06 20:56
推 a5480277:你搞錯關鍵了啦... 07/06 20:58
→ a5480277:你在你迴圈的最後面+個system("pause"); 跑跑看 07/06 20:58
→ a5480277:你要先了解為何會錯 也就是為什麼會那樣跑 用實驗的方式 07/06 20:59
→ loveme00835:其實最快的方式是 metaprogramming... (逃 07/06 21:02
→ winterboy209:我改出來了 = =||| 07/06 21:19
→ a5480277:阿 因為你的檔案只有一行 所以你可以用end of file 07/06 21:21
→ winterboy209:哈哈~我好像就是用eof喔 07/06 21:23
→ ikari512:我也想到metaprogramming... 07/07 07:19