杭电ACM-1237-简单计算器
来源:互联网 发布:为什么wifi网络不稳定 编辑:程序博客网 时间:2024/06/12 01:52
做这个陆陆续续也弄了好几天,一开始是使用栈在做,因为这种类型的题教材上提过(我相信一定也有不少同学一提到写一个简单的不带括号的计算器也会第一时间想到 栈吧)。不过在做的过程,弄了好久也未能用栈来实现。说实话用栈来做是有点复杂了。不说别的,光是你去定义节点和各个函数就有得你弄几分钟了。也许就这会儿功夫人家不用栈的同学已经把这个题给做出来了。但,这可能也只是我们在逃避对栈的使用吧,等有空还得用栈再实现一下,毕竟对自己还是有一定好处的。在经过百度之后,发现了一种特别简单又容易理解的方法(不得不说这些人真牛逼),经过对代码的阅读和揣摩,理清了原作者的思路之后,于是就自己又来实现了一遍。 牛的代码就那么几行,但功能绝不低于同类型的其它代码!
2015年4月8日16:12:08
至于题目,大家请前往这儿(http://acm.hdu.edu.cn/showproblem.php?pid=1237)
下面就是代码,若哪儿有不对或是什么建议,请各位观者不吝指出!
#include <iostream>#include <iomanip>//保留小数时所用到的函数被包含在此头文件中using namespace std;int main(){ double d[100];//储存每一个浮点数 double sum;// 累计整个数组的和 double num;// 每次输入的单个浮点数 char operate;// 操作符 while(cin >> num)// 开始输入第一个数 { sum = 0;// 每次运算时sum 初始化为0 int i = 0; d[0] = num;// 把第一个数保存的d[0]中 operate = getchar();// 最来判断最后一次,以输入0和回车来结束程序的运行 if(operate == '\n' && num == 0) break;// 如果输入0回车,则程序结束 while(cin >> operate >> num)// 输入第一个数之后,后面每次都是接连一个操作符和一个操作数 { if(operate == '*')// 如果本次输入的是 *号,则将当前元素的数乘以num 并保存到当前元素中 d[i] *= num; else if(operate == '/')// .. d[i] /= num; else if(operate == '+')// 如果本次输入的是 +号,则将num 放入下一个元素中 d[++i] = num; else d[++i] = -num;// v如果是 -号,则把-num 放入下一个元素中 if(getchar() == '\n')// 判断最后是否以回车键结束 break;// 是回车,完成本轮计算 } for(i; i >= 0; i--) sum += d[i];//输入整个数组中的累计和 cout <<setprecision(2) <<std::fixed <<sum <<endl;//保留两位小数输出sum } system("pause"); return 0;}
输入格式是每个数和操作符之间有空格隔开.
</pre><pre name="code" class="cpp">
运行结果:</span></p><p></p><p><pre name="code" class="cpp">5 + 611.003 + 9 / 3 + 6 * 218.000请按任意键继续. . .
0 0
- 杭电ACM-1237-简单计算器
- 杭电acm—1237 简单计算器
- 杭电1237简单计算器
- 杭电简单计算器
- 杭电hdu 1237 简单计算器 stack
- java 杭电1237简单计算器
- HDOJ,杭电1237简单计算器。。。数据结构小练习。
- 简单计算器(杭电1237)(栈的运用)
- 杭电OJ——简单计算器
- 杭电ACM1237——简单计算器
- ACM简单的计算器
- 杭电ACM课件学习 简单数学题
- 杭电ACM 1096 简单求和
- 杭电 ACM 1035 简单模拟题
- 【求助】杭电ACM 1001 一道简单问题,老是PE
- 杭电 HDU ACM 1283 最简单的计算机
- 杭电(oj)ACM 2586 简单LCA
- 杭电acm 折线分割平面(简单题)
- DevExpress TreeList 展开当前节点及父节点
- Jquery $.ajax 莫名其妙出错(Firefox下一直到error,返回结果又正常)
- Provision Discovery流程分析
- 写论文时word2007的一些问题
- android NFC学习笔记
- 杭电ACM-1237-简单计算器
- 集合框架(Collection)
- 阿斯打扫打扫打扫阿斯打扫气温千瓦时的啊死党
- WSAIoctl
- org.dom4j.DocumentException: Error on line 1 of document : Premature end of file. Nested exception:
- iOS 8 AutoLayout与Size Class
- 词组缩写 2564HDU
- 手机页面优化几点(bbs 1)
- MFC编写的小游戏过程中的收获