使用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 关注
- 1075 浏览
添加回答
举报
0/150
提交
取消