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

第三方交易网站怎么做百度站长社区

第三方交易网站怎么做,百度站长社区,移动网站程序,知名景观设计公司的官网描述 读入一个只包含 , -, *, / 的非负整数计算表达式,计算该表达式的值。 输入描述: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中…

描述

    读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。

输入描述:

    测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。

输出描述:

    对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。

样例输入:

输入:
1 + 2
4 + 2 * 5 - 7 / 11
0

样例输出:

输出:
3.00
13.36

思路:

①设立运算符和运算数两个栈,,一个用来存储运算符,另一个用来存储运算数。

②在运算符栈中放置一个特殊运算符#,其优先级最低。

③将表达式尾部添加一个特殊运算符$,其优先级次低。

④从左至右依次遍历字符串,若遍历到运算符,则将其与运算符栈的栈顶元素进行比较,若运算符栈的栈顶的优先级小于该运算符,则将该运算符压入运算符栈;若运算符栈的栈顶的优先级大于该运算符,则弹出该栈顶运算符,从运算数栈中依次弹出运算数,完成弹出运算符对应的运算后,再将该结果压入运算数栈。

⑤若遍历到表达式中的运算数,则直接压入运算数栈。

⑥若运算符栈中仅剩两个特殊运算符#和$,则表达式运算结束,此时运算数栈中唯一的数字就是表达式的值。

源代码:

#include<iostream>
#include<stack>
#include<map>
#include<string>
using namespace std;//例题5.6 KY129 简单计算器
//考虑到需要计算的数字可能不止一位,就从检测到数字的索引开始,一直到检测不到数字的索引,这之间的就是一整个数字
double getNum(string str, int& index) {double res = 0;while (isdigit(str[index])) {res = res * 10 + str[index] - '0';index++;}return res;
}//对两个数字进行运算
double cal(double x, double y, char op) {if (op == '+') {return x + y;}else if (op == '-') {return x - y;}else if (op == '*') {return x * y;}else if (op == '/') {return x / y;}return 0;
}int main()
{//存储多个运算符号的优先级map<char, int> maps = { {'#',0},{'$',1},{'-',2},{'+',2}, {'/',3},{'*',3} };string s;//因为需要运算的式子可能不止一条,这里用while循环//因为输入的式子中可能包含多个空格,直接用getline(cin, s)回去整行的字符串,并赋值给swhile (getline(cin, s)) {if (s == "0") { //结束条件break;}stack<char> symbol;  // 存储运算符的栈stack<double> number; // 存储操作数的栈int index = 0; //对字符串遍历的索引symbol.push('#'); //把'#'压入符号中,优先级最低s = s + '$'; //先把'$'放到要处理的公式字符串的末尾,优先级次低while (index < s.size()) { //遍历公式中的每一个字符//获取该数字索引开始的整个数字,并压入栈number中if (isdigit(s[index])) { number.push(getNum(s, index));}//遇到公式中的空格直接跳过else if (s[index] == ' ') {index++;}else {//若运算符栈的栈顶的优先级小于遍历遇到的当前的运算符,则将该运算符压入运算符栈if (maps[s[index]] > maps[symbol.top()]) {symbol.push(s[index]);index++;}//否则,弹出该栈顶运算符,从运算数栈中依次弹出运算数,完成弹出运算符对应的运算后,再将该结果压入运算数栈。else {double x = number.top();number.pop();double y = number.top();number.pop();char op = symbol.top();symbol.pop();number.push(cal(y, x, op));}}}//精确到小数点后2位printf("%.2f\n", number.top());}return 0;
}

提交结果:

 

http://www.hkea.cn/news/454311/

相关文章:

  • 银行网站 设计方案外包优化网站
  • 做网站是学什么专业软件外包企业排名
  • wordpress商城 中文站百度站长平台网址
  • 建手机网站的软件有哪些南宁百度seo价格
  • 做网站私活长沙网络营销公司
  • 网站建设公司 广告法被处罚沧州网络推广外包公司
  • 电商网站 开发成本惠州seo外包服务
  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤
  • 湘潭学校网站建设 z磐石网络网站关键词优化教程
  • wordpress多程序用户同步汕头seo排名
  • 旅游网站 建设平台分析百度seo一本通
  • 怎么用dw做网站app开发网站
  • 昆山做网站的公司有哪些seo整站优化推广
  • 网站建设谈单情景对话青岛seo百科
  • 网站做自适应好不好网页分析报告案例
  • 大连手机自适应网站建设公司seo诊断站长
  • 有哪些好的网站十大电商代运营公司
  • 个人网页设计欣赏网站整站优化快速排名
  • 多少钱立案seo 公司
  • 医学类的网站做Google百度怎么优化排名