http://ac.jobdu.com/problem.php?cid=1040&pid=26
题目27:简单计算器// 题目27:简单计算器.cpp: 主项目文件。
#include "stdafx.h"
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
using namespace std;
vector<double> result;
vector<char> OP;
int main()
{
//freopen("F:\\test.txt","r",stdin);
//freopen("F:\\output.txt","w",stdout);
int temp;
while(scanf("%d",&temp)!=EOF)
{
result.clear();
OP.clear();
char t=getchar();
if(t=='\n'||t==' '&&temp==0)
break;
double first=1.0*temp;
result.push_back(first);//存入第一个数
while(1)
{
char op=getchar();
OP.push_back(op);
double num;
scanf("%lf",&num);
if(OP.back()=='*')
{
result.back()*=num;
OP.pop_back();
}
else if(OP.back()=='/')
{
result.back()/=num;
OP.pop_back();
}
else
{
result.push_back(num);
}
op=getchar();
if(op=='\n')
break;
}
double res=result.front();
vector<double>::iterator iteRes=result.begin();
iteRes++;
for(vector<char>::iterator iteOP=OP.begin();iteOP!=OP.end();iteOP++)
{
if(*iteOP=='+')
{
res+=*iteRes;
iteRes++;
}
if(*iteOP=='-')
{
res-=*iteRes;
iteRes++;
}
}
printf("%.2lf\n",res);
}
return 0;
}