栈实现简单计算器的四则运算(STL)
来源:互联网 发布:淘宝干货贴吧 编辑:程序博客网 时间:2024/05/29 08:56
#include <bits/stdc++.h>using namespace std;stack<char>st;stack<double>cal;char s[1200],post[1200];double res;//中缀转后缀void trans(){ while(!st.empty()) st.pop(); int i=0,j=0; char ch; while(s[i]){ ch=s[i]; if(s[i]=='(') st.push(s[i]); else if(ch==')') { while(!st.empty()&&st.top()!='(') { post[j++]=st.top(); post[j++]=' '; st.pop(); } st.pop(); } else if(ch=='+'||ch=='-') { while(!st.empty()&&st.top()!='(') { post[j++]=st.top(); post[j++]=' '; st.pop(); } st.push(ch); } else if(ch=='*'||ch=='/') { while(!st.empty()&&st.top()!='('&&(st.top()!='+')&&(st.top()!='-')) { post[j++]=st.top(); post[j++]=' '; st.pop(); } st.push(ch); } else { while(ch>='0'&&ch<='9') { post[j++]=ch; i++; if(s[i]) ch=s[i]; else break; } post[j++]=' '; i--; } i++; } while(!st.empty()) { post[j++]=st.top(); post[j++]=' '; st.pop(); } j--; post[j]='\0';}//输出后缀表达式的值void work(char *s){ double n1,n2; double d=0; int i=0; while(!cal.empty()) { cal.pop(); } int len=strlen(post); while(i<len) { if(s[i]>='0'&&s[i]<='9') { d=0; while(s[i]>='0'&&s[i]<='9') { d=d*10+(s[i]-48); i++; } cal.push(d); } else if(s[i]=='+') { n2=cal.top(); cal.pop(); n1=cal.top(); cal.pop(); cal.push(n1+n2); } else if(s[i]=='-') { n2=cal.top(); cal.pop(); n1=cal.top(); cal.pop(); cal.push(n1-n2); } else if(s[i]=='*') { n2=cal.top(); cal.pop(); n1=cal.top(); cal.pop(); cal.push(n1*n2); } else if(s[i]=='/') { n2=cal.top(); cal.pop(); n1=cal.top(); cal.pop(); cal.push(n1/n2); } i++; } cout<<cal.top()<<endl;}int main(){ while(gets(s)!=NULL) { trans(); //输出后缀表达式 puts(post); //输出结果 work(post); } return 0;}
0 0
- 栈实现简单计算器的四则运算(STL)
- 栈 实现四则运算的计算器
- js实现简单计算器(四则运算)
- 简单的四则运算计算器
- 简单的四则运算计算器
- 使命栈(stack)实现一个简易的四则运算计算器
- 栈的应用--计算器实现四则运算
- 一个简单的四则运算计算器
- 简单的web四则运算计算器
- C++简单计算器实现(四则运算加括号)
- java简单计算器实现,只有四则运算
- C语言 实现四则运算简单计算器
- ARM开发(9)基于STM32的简单四则运算计算器
- php扩展开发-简单计算器的四则运算
- 计算器C#代码(实现整数的四则运算)
- 简单计算器 【栈STL】
- 简单四则运算计算器
- 栈实现简单的四则运算表达式
- 漫谈WebSphere应用服务器之事务
- forward(转发)与redirect(重定向)
- MySQL 之XtraBackup全量增量热备实践
- 欢迎使用CSDN-markdown编辑器
- httppost httpget httpclient调用接口以及main方法直接调用API接口
- 栈实现简单计算器的四则运算(STL)
- git检出Coding上某个分支下的项目
- JVM(一):体系结构 && 内存模型
- JDK安装方法参考
- 关于PAT提交程序的注意事项
- swust.oj.1013
- 进制转换demo
- IDEA下对Maven管理的项目进行jar包部署
- hdu 2022 海选女主角