→ Caesar08: (純好奇)你都會轉了,卻不會加空格? 04/07 12:20
哈哈 因為我整個程式都打完之後 發現我缺了空格 但是空格怎麼改 輸出都怪怪的
推 springman: 您如果只是要加空格的話,不就在您的 %c 後面加個空格 04/07 13:19
→ springman: 就可以。只是我與前面網友其實有同樣的好奇。 04/07 13:19
→ springman: 另外您的寫法好像只是轉換,無法算出運算式的值。 04/07 13:20
我試過在%c後面加空格了 但他輸出會變成 1 2 1 2 + 1 3 + 會變成每個數字間都有空格
哈哈 我主要只有轉換啦 沒有要算出值
※ 編輯: november1121 (118.168.205.153), 04/07/2015 22:28:56
※ 編輯: november1121 (118.168.205.153), 04/07/2015 22:30:47
→ Feis: 提示: 不是每個都要加. 還有的地方可能要額外加 04/07 22:30
是額外在加迴圈 加空格嗎... 有點沒頭緒ㄟ 再思考看看好了 謝囉:)
※ 編輯: november1121 (118.168.205.153), 04/07/2015 22:34:34
※ 編輯: november1121 (118.168.205.153), 04/07/2015 22:47:40
推 springman: 不然您就在 + - * / 後面那個輸出 %c 前後都加空格就好 04/08 04:43
→ springman: 不過這樣好像也不行,中序可以這樣做,後序就不行了。 04/08 04:44
→ springman: 正常的做法是您在轉換之前需要先將每個運算元切出來 04/08 04:44
→ springman: 這樣您才能夠在運算元之間加空格,您似乎沒有切運算元 04/08 04:45
推 springman: 應該是在讀到運算子時要記錄一下,之後要輸出運算元時 04/08 04:50
→ springman: 就加個空格,運算子後面也加個空格。我好像應該改看看 04/08 04:51
推 springman: 可以 work,我試過了。在'\0'與+-*/後那個 %c 前面 04/08 05:02
→ springman: 加個空格。default 那個就是要記錄是否運算元再決定 04/08 05:02
→ springman: 是否加空格。 04/08 05:03
→ springman: 「是否運算子之後再決定是否加空格」才對。 04/08 05:03
→ Feis: 另一個寫法就是 default 那個不加, 在運算子處理就好 04/08 07:59
推 springman: 可是 postfix 會有出現連續運算元的情形 04/08 08:00
→ Feis: 那沒關係 04/08 08:47
推 s4300026: 偵測到運算子立刻加空白,輸出運算子前後加空白。 04/08 23:35
推 s4300026: 不好意思,修正一下,輸出運算子前加空白即可,後免加。 04/08 23:39
謝謝各位囉~~~
最後我做出來是這樣子
http://ideone.com/6twgyk
只是 最後 我試了一個數據 怪怪的 (300+23)*(43-21)/(84+7)
最後出來是300 23+ 43 21- * 84 7+ /
只剩+號跟-號前面沒有空白...
其他都正常..
※ 編輯: november1121 (118.168.201.113), 04/13/2015 00:47:38
推 springman: 如果只針對您的case,只要 case ')' 那個輸入改成" %c" 04/13 12:18
推 springman: 62 行的 printf("%c",stack[top]); %c 前加個空格即可 04/13 12:29