编写程序,使其能读入并计算一个只包含加减运算的表达式,每一个输入的数据都是浮点数,除第一个数以外,
其余每个数前面都有一个运算符,表达式以分号“;”结束。
例如:
23+43-233+234;
输入输出格式要求:
要求输出小数点后6位。
只输出运算结果,请不要输出其他字符,遇到异常情况(如结尾不是分号等),输出error
例如:
输入:23+43-233+234;回车
输出:67.000000
输入:23+43,回车
输出:error
下面是满分答案,不用谢
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
int main() {
char exp[10000];
int cur = 0;
double res, num;
char op;
bool first = true;
while (cin >> num) {
if (first) {
res = num;
first = false;
} else {
res += op == '+' ? num : (-num);
}
cin >> op;
if (op == ';') {
printf("%.6f\n", res);
return 0;
}
else if ((op != '+' && op != '-')) {
cout << "error" << endl;
return 0;
}
}
cout << "error" << endl;
return 0;
}
```
不知道你这个问题是否已经解决, 如果还没有解决的话: