HDU 1237-简单计算器
2017-09-10 20:37
225 查看
简单计算器
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22558 Accepted Submission(s): 8152
题目链接:点击打开链接
Problem Description
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
Input
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
Output
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
Sample Input
1 + 2
4 + 2 * 5 - 7 / 11
0
Sample Output
3.00
13.36
分析:
第一点,题中说到不存在非法表达式,说明除了 0 独自占一行外,不存在有输入一个数字的情况。第二点,注意数据类型,当涉及到除法的时候,要对将整形变为 double 型,第三点,语法格式的控制要准确。
#include <iostream> #include<stdio.h> #include<cstring> #include<string> using namespace std; int main() { int b; double sum,a[210]; char c,d; while(1) { int bj=1,i=0; memset(a,0,sizeof(a)); scanf("%lf",&a[0]); d=getchar(); while(d!='\n') { bj=0; scanf("%c %d",&c,&b); if(c=='+') a[++i]=b; else if(c=='-') a[++i]=-b; else if(c=='/') a[i]/=(b*1.0); else if(c=='*') a[i]*=b; d=getchar(); } if(bj) break; sum=0; for(int j=0;j<=i;j++) sum+=a[j]; printf("%.2lf\n",sum); } return 0; }
相关文章推荐
- HDU 1237 简单计算器
- HDU - 1237 - 简单计算器(栈)
- hdu 1237 简单计算器
- [JAVA][HDU 1237][九度 1019][简单计算器]
- hdu 1237简单计算器
- HDU-1237-简单计算器
- hdu 1237 简单计算器
- HDU 1237 简单计算器 栈
- HDU 1237 简单计算器
- 简单计算器-HDU - 1237
- HDU 1237 简单计算器 (栈 )
- hdu 1237 Java 简单计算器
- hdu -1237- 简单计算器(栈实现)
- HDU-1237 简单计算器【栈】
- hdu 1237 简单计算器(数组模拟栈,队列)
- HDU 1237 简单计算器(中缀表达式求值)
- hdu 1237 简单计算器
- HDU 1237 简单计算器
- HDU 1237 简单计算器 (栈)
- hdu 1237 简单计算器(表达式求值)