题目描述:
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
输入:
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
输出:
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
样例输入:
1 + 2
4 + 2 * 5 - 7 / 11
0
样例输出:
3.00
13.36
//先用自己想到的思路写了如下一堆,有点啰嗦和繁杂。
//看到网上其他人写的简介的代码,希望自己之后能学习和优化。
//加减乘除的功能实现了,但是输出是整形的,不符合题目中要求的保留两位小数。
#include <iostream>
#include<vector>
#include<string>
#include<iomanip>
using namespace std;
string delspace(string temp)
{
int begin = 0;
begin = temp.find(" ", begin);
while (begin != -1)
{
temp.replace(begin, 1, "");
begin = temp.find(" ", begin);
}
return temp;
};
int main()
{
vector<string> input;
string num;
while (getline(cin, num)&&num!=