http://ac.jobdu.com/status.php?user_id=yy4869
用栈数据结构,但是出错了,对于一行的计算结果是正确的,但是不能进行多行计算,我怀疑是cin不能读换行之类的错误,我也不知道怎么改
#include<stdio.h>
#include<string.h>
#include<fstream>
#include<iostream>
#include<iomanip>
using namespace std;
#define MAX 200
float stack[MAX];
int tail = 0;
int main(){
int a,algo;
ifstream cin("data.txt");
while (cin >> a && a !=0 )
{
stack[tail] = (float)a;
char algo, str; //algo表示运算符,str表示换行,判断是否结束
while (cin >> algo >> a)
{
if (algo == '+')
stack[++tail] = (float)a;
else if (algo == '-')
stack[++tail] = -(float)a;
else if (algo == '*')
stack[tail] = stack[tail] * (float)a;
else if (algo == '/')
stack[tail] = stack[tail] / (float)a;
}
float result = 0;
for (int i = 0; i <= tail; i++)
result += stack[i];
cout << setiosflags(ios::fixed) << setprecision(2) << result << endl;
//char ch = getchar();
}
system("pause");
return 0;
}