使用Stack結(jié)構(gòu)模擬一個(gè)表達(dá)式的運(yùn)算過程,如2+3*4。為什么下面運(yùn)行會(huì)出錯(cuò),誰可以寫一個(gè)簡短的代碼嗎?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貢獻(xiàn)156條經(jīng)驗(yàn) 獲得超57個(gè)贊
類型轉(zhuǎn)換問題,你把int轉(zhuǎn)換為char出錯(cuò),這塊可以這樣寫
foreach(var?c?in?sk){ Console.Write(c); }
需要注意是var 出現(xiàn)在.net framework 3.5 以后,還有就是棧是后進(jìn)先出的 所以你的結(jié)果是=+*432,想輸出你的要的結(jié)果應(yīng)該這樣寫
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 關(guān)注
- 1107 瀏覽
添加回答
舉報(bào)
0/150
提交
取消