hdu1237简单计算器-栈实现
2016-12-19 21:53
155 查看
简单计算器
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 19135 Accepted Submission(s): 6730
Problem Description
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
Input
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
Output
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
Sample Input
1 + 2
4 + 2 * 5 - 7 / 11
0
Sample Output
3.00
13.36
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 19135 Accepted Submission(s): 6730
Problem Description
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
Input
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
Output
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
Sample Input
1 + 2
4 + 2 * 5 - 7 / 11
0
Sample Output
3.00
13.36
#include <cstdio> #include <cstring> #include <stack> using namespace std; int main() { int i; double a,b; char s[250],c; while(gets(s),strcmp(s,"0")!=0) { stack<char>s1; stack<double>s2; for(i=0; s[i]; i++) { if(s[i]>='0'&&s[i]<='9') { a=0; while(s[i]>='0'&&s[i]<='9') { a=a*10+s[i]-'0'; i++; } i--; s2.push(a); } else if(s[i]=='-'||s[i]=='+') { if(!s1.empty()) { c=s1.top(); s1.pop(); a=s2.top(); s2.pop(); b=s2.top(); s2.pop(); if(c=='+') a+=b; else a=b-a; s2.push(a); s1.push(s[i]); } else s1.push(s[i]); } else if(s[i]=='/' || s[i] == '*') { char ch = s[i]; b=0; i+=2; while(s[i]>='0'&&s[i]<='9') { b=b*10+s[i]-'0'; i++; } i--; a=s2.top(); s2.pop(); if(ch == '/') a=a/b; else a = a*b; s2.push(a); } } while(!s1.empty()) { c=s1.top(); s1.pop(); a=s2.top(); s2.pop(); b=s2.top(); s2.pop(); if(c=='+') a+=b; else a=b-a; s2.push(a); } printf("%.2f\n",s2.top()); } return 0; }
相关文章推荐
- hdu1237(简单计算器) LinkedList类实现栈和队列功能
- 简单计算器 java实现hdu1237
- hdu1237 简单计算器
- 利用栈实现简单计算器的例子(Calculator)
- 简单计算器的面向过程实现和面向对象实现对比
- hdu -1237- 简单计算器(栈实现)
- 一个简单计算器的实现
- 简单计算器实现(C++)
- PHP学习笔记(25)流程分支控制结构 (26)PHP实现简单计算器
- 对于简单计算器的技术实现
- 【简单计算器】实现加减乘除
- 用java实现的简单计算器
- Java实现的简单计算器
- 《java---简单计算器的实现》
- 简单计算器的面向过程实现和面向对象实现对比
- 腾讯实习笔试题--简单计算器程序的c语言实现
- javascript实现的简单计算器
- php学习之简单计算器实现代码
- 栈实现的简单计算器
- 基于51单片机设计简单计算器,实现6位有效四则运算的程序设计(汇编调用C)