当前位置: 首页 > news >正文

在哪几个网站里可以做淘客建设银行网站用户名

在哪几个网站里可以做淘客,建设银行网站用户名,长沙广告招牌制作公司,个人做网站需要多少钱文章目录题目描述思路使用getline()存储输入的字符串边读取边压栈完整代码题目描述 使用stack处理括号化的表达式。当你看到一个左括号#xff0c;将其记录下来。当你在一个左括号之后看到一个右括号#xff0c;从stack中pop对象#xff0c;直至遇到左括号#xff0c;将左括… 文章目录题目描述思路使用getline()存储输入的字符串边读取边压栈完整代码题目描述 使用stack处理括号化的表达式。当你看到一个左括号将其记录下来。当你在一个左括号之后看到一个右括号从stack中pop对象直至遇到左括号将左括号也一起弹出栈。然后将一个值括号内的运算结果push到栈中表示一个括号化的子表达式已经处理完毕被其运算结果所替代。 思路 使用getline()存储输入的字符串 是为了避免cin在提取字符串时遇到空格会终止读取的问题。例如 // 当输入1 *2时 cin s; // s为1 getline(cin, s); // s为1 *2边读取边压栈 创建两个栈 一个用来存运算符一个用来存操作数 当遇到 “)” 时弹出运算符栈中的运算符、和对应的操作数栈中的操作数并进行计算直到遇到 “(” 完成后将这期间的运算结果压入操作数栈。例如 处理 “ () ” 时将12作为操作数从nums栈中弹出将处理结果3压入nums栈中当然 “ () ” 三个运算符全部弹出symbol栈。之后 遇到右括号时将乘号、左括号弹出栈在这过程中将3、4作为操作数弹出nums栈进行运算之后将运算结果压入nums栈。 当处理完全部括号后将symbol栈中的运算符清空——也就是将对应的运算都进行计算在此过程中减法和除法要注意操作数的先后问题 当symbol栈中为空时nums栈中仅有一个元素也就是最终的计算结果。 完整代码 #include iostream #include stack #include stringusing namespace std;void resolve(stackdouble s1, stackchar s2){while((!s2.empty()) (s2.top() ! ()){char temp s2.top();s2.pop();double num1 s1.top(); //second//cout num1: num1 endl;s1.pop();double num2 s1.top(); //first//cout num2: num2 endl;s1.pop();if(temp *){s1.push(num1*num2);//cout * endl;}if(temp /){s1.push(num2/num1); // 注意操作数的顺序//cout / endl;}if(temp ){s1.push(num1num2);//cout endl;}if(temp -){ // 注意操作数的顺序s1.push(num2-num1);//cout - endl;}}if(!s2.empty()){ // 当symbol栈不为空的时候if(s2.top() (){ // 遇见左括号也会跳出上述循环 s2.pop(); // 因此无法执行while中的pop} // 程序会一直卡在左括号的位置} // 所以在这里补上pop避免上述问题}double calculate(string s) {if(s.empty()){return 0;}stackdouble nums;stackchar symbol;double num 0;string temp ; // 存储连续数值字符for(size_t i 0; i s.size(); i){if((s[i] 0 s[i] 9) || s[i] .){ // 数字temp s[i]; // 连续数值字符}if(((s[i]0||s[i]9)s[i]! ) || is.size()-1){ // 运算符if(!temp.empty()){num stod(temp); // num存储连续数值字符的终值nums.push(num);}if(s[i] )){resolve(nums, symbol);}else{switch (s[i]) {case (:case :case -:case *:case /:symbol.push(s[i]); // 上述五种运算符直接压栈}}num 0;temp.clear(); // 清空temp以便存储下一个连续数值字符}}resolve(nums, symbol);return nums.top(); }bool pankong(string str){ // 判断左右括号是否数量一致int left 0;int right 0;for(auto beg str.begin(); beg ! str.end(); beg){switch (*beg) {case ): right; break;case (: left; break;}}if(left ! right){cout 左右括号数量不对等 endl;return false;}else{return true;} }int main() {string str; // 表达式double over; // 最终值//cin str;getline(cin,str);if(!pankong(str)){ // 判断左右括号数量是否一致return -1;}over calculate(str);cout over: over endl;return 0; }
http://wiki.neutronadmin.com/news/313573/

相关文章:

  • 做网站常用的技术有哪些网站信息备案查询
  • 淘宝开放平台怎么做淘宝客网站微信开发平台公司
  • 企业互联网网站定位上海企业网站制作电话
  • 做画册封面的网站辽宁建设工程信息网直接发包工程
  • 网站建设进什么分录怎么做网站表白
  • 广州网站优化网站地推团队联系方式
  • 开发区二手房北京大型网站优化
  • 大庆商城网站建设建设商城类网站多少钱
  • 如何用书签 做网站接口wordpress怎么调用音频
  • 如何建设物流网站网站的制
  • 北京建设银行支行查询官方网站模板做图 网站有哪些内容
  • 企业的网站建设网站开发 工期安排
  • 网站备案 必须在接入商处工程建设项目在哪个网站查询
  • 建设电子商务网站的试卷东莞市的网站公司哪家好
  • 电商网站首页开发wordpress .mo
  • 青海省住房建设厅网站首页做网站需要公司资质吗
  • 代理网站系统wordpress 分段
  • 网站管理系统后台网站绝对布局
  • 影响网站权重的因素seo咨询服务
  • ih5做的网站怎么上传html5支持最好的浏览器
  • 成都专业app开发服务杭州关键词推广优化方案
  • 怎样做网站上的语种链接windows wordpress 轻量级
  • 百度网站推广申请百度站长推送
  • 网站平台需要做无形资产吗 怎么做o2o电子商务模式是指
  • 怎么做谷歌这样的网站关键词排名优化网站
  • 做自适应网站设计无锡定制化网站建设
  • ps怎么做网站导航内嵌式网站一年的 运营费用
  • 服务器做网站教程做站群的网站怎么来
  • 网站关键词在哪设置零售管理系统软件
  • 网站建设与设计实验报告网站开发如何使用微信登录