浙大计算机研究生复试上机考试-2006年---《简单计算器》---栈的运用
2018-01-25 15:32
375 查看
#include<cstdio> #include<cstring> #include<string> #include<string.h> #include<cmath> #include<algorithm> #include<iostream> #include<queue> #include<stack> #define ll long long using namespace std; int main(){ double a,t; char b,c[10]; while(scanf("%lf%c",&a,&b)){ if(a==0&&b=='\n'){ break; } double ans=0; stack<double> abc; abc.push(a); while(~scanf("%s %lf",c,&a)){ if(c[0]=='+'){ abc.push(a); } else if(c[0]=='-'){ abc.push(-a); } else if(c[0]=='*'){ t=a*abc.top(); abc.pop(); abc.push(t); } else if(c[0]=='/'){ t=abc.top()/a; abc.pop(); abc.push(t); } if(b=getchar(),b=='\n') break; } while(!abc.empty()){ ans+=abc.top(); abc.pop(); } printf("%.2lf\n",ans); } return 0; }
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
Output对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
Sample Input
1 + 2 4 + 2 * 5 - 7 / 11 0
Sample Output
3.00 13.36
相关文章推荐
- 浙大计算机研究生复试上机考试-2006年_Prim_hdoj1233
- hdu 3792-浙大计算机研究生保研复试上机考试-2011年
- Twin Prime Conjecture(浙大计算机研究生保研复试上机考试-2011年)
- 浙大计算机研究生复试上机考试-2010年 zoj问题
- hdu1233浙大计算机研究生复试上机考试(2006)还是畅通工程
- 浙大计算机研究生复试上机考试-2010年 zoj问题
- hdu 3793 浙大计算机研究生保研复试上机考试-2011年
- Twin Prime Conjecture(浙大计算机研究生保研复试上机考试-2011年)
- hdu 3794 浙大计算机研究生保研复试上机考试-2011年
- hdu 1881 毕业bg (01背包变形)浙大计算机研究生复试上机考试-2008年
- 浙大计算机研究生复试上机考试-2005年-A+B
- 浙大计算机研究生复试上机考试-2010年
- HDU1864-最大报销额-题意有问题-浙大计算机研究生复试上机考试-2007年
- HDOJ1228 A + B (浙大计算机研究生复试上机考试-2005年)
- 浙大计算机研究生复试上机考试2010年----最短路径问题
- HDU-1231 最大连续子序列 (浙大计算机研究生复试上机考试-2005年 线性dp)
- A+B HDU - 3787(浙大计算机研究生复试上机考试-2010年 )
- ZOJ问题 HDU - 3788(浙大计算机研究生复试上机考试-2010年 )
- 浙大计算机研究生复试上机考试-2005年-A+B
- 浙大计算机研究生复试上机考试-2010年