我一直在尝试计算通过输入 22+3*9/8 分配的变量“计算”。我尝试了很多,但我所有的努力都是徒劳的,请告诉我如何解决这个问题以获得输出结果
char calculate[10];
calculate = "22+3*9/8";
cout<< calculate;
最佳答案
您需要将中缀语句转换为后缀,然后使用堆栈计算表达式会容易得多。见e.g. (有很多方法可以做到这一点)
将表达式转换为后缀之后
22+3*9/8 -> 22 3 9 * 8/+
你可以使用堆栈来计算表达式
当是数字时,则入栈,当是运算符时,取栈顶的两个操作数计算,然后将结果入栈:
expr stack (top ... bottom)
22 22
3 3 22
9 9 3 22
* 27 22
8 8 27 22
/ 3 22 // here u could start using floating numbers instead 3.375 instead of 3
+ 25
关于c++ - 试图计算一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10557322/