hdoj 简单计算器 1237 (栈模拟)

来源:互联网 发布:淘宝app官方下载 编辑:程序博客网 时间:2024/05/29 13:07

简单计算器

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 15924    Accepted Submission(s): 5444


Problem Description
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。

Input
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。

Output
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。

Sample Input
1 + 24 + 2 * 5 - 7 / 110

Sample Output
3.0013.36
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int main(){double a[210];double b,sum;int top,i,j,k;char c;while(scanf("%lf",&b)){c=getchar();//getchar()用来吸收空格和换行 if(b==0&&c=='\n')break;else{top=0;memset(a,0,sizeof(a));a[top++]=b;}while(1){scanf("%c %lf",&c,&b);if(c=='*')a[top-1]*=b;else if(c=='/')a[top-1]/=b;else if(c=='+')a[top++]=b;else if(c=='-')a[top++]=-b;if(getchar()=='\n')break;}sum=0;for(i=0;i<top;i++)sum+=a[i];printf("%.2lf\n",sum);}return 0;}


 

0 0
原创粉丝点击