使用Stack結構模擬一個表達式的運算過程,如2+3*4。為什么下面運行會出錯,誰可以寫一個簡短的代碼嗎?Stack sk = new Stack();? ? ? ? ? ? sk.Push(2);? ? ? ? ? ? sk.Push(3);? ? ? ? ? ? sk.Push(4);? ? ? ? ? ? sk.Push('*');? ? ? ? ? ? sk.Push('+');? ? ? ? ? ? sk.Push('=');? ? ? ? ? ? foreach (char c in sk)? ? ? ? ? ? {? ? ? ? ? ? ? ? Console.Write(c);? ? ? ? ? ? }
1 回答
已采納

一毛錢
TA貢獻156條經驗 獲得超57個贊
類型轉換問題,你把int轉換為char出錯,這塊可以這樣寫
foreach(var?c?in?sk){ Console.Write(c); }
需要注意是var 出現在.net framework 3.5 以后,還有就是棧是后進先出的 所以你的結果是=+*432,想輸出你的要的結果應該這樣寫
Stack?sk?=?new?Stack(); ????????????sk.Push('='); ????????????sk.Push(4); ????????????sk.Push('*'); ????????????sk.Push(3); ????????????sk.Push('+'); ????????????sk.Push(2); ????????????foreach?(var?c?in?sk) ????????????{ ????????????????Console.Write(c); ????????????} ????????????Console.ReadLine();
- 1 回答
- 1 關注
- 1114 瀏覽
添加回答
舉報
0/150
提交
取消