<题目链接> 题目大意: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值.  Input测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔.没有非法表达式.当一行中只有0时输入结束,相应的结果不要输出. Output对每个测试用例输出1行,即该表达式的值,精确到小数点后2位. Sample Input 1 + 2 4 + 2 * 5 - 7 / 11 0 Sample Output 3.00 13.36 解题分析:…
/*===================================== 简单算术表达式求值 总时间限制: 1000ms 内存限制: 65536kB 描述 2位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算 -,减法运算 *,乘法运算 /,除法运算 %,取余运算. 运算符前后可能有空格. 算术表达式的格式为: 运算数 运算符 运算数 请输出相应的结果. 输入 算术表达式,如: 32+64 输出 整形算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位),例如 9…
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单计算器 Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔.没有非法表达式.当一行中只有0时输入结束,相应的结果不要输出. Output 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位. Sample Input…
简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26553    Accepted Submission(s): 9626 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值.   Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符…
题目描述 Description 两位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算:-,减法运算:*,乘法运算:/,整除运算:%,取余运算. 算术表达式的格式为(运算符前后可能有空格):运算数 运算符 运算数 请输出相应的结果. 输入输出格式 Input/output 输入: 一行算术表达式. 输出: 整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位). 输入输出样例 Sample input/output 样例测试点#1 输入样例: 32+64 输出样例:…
描述: 两位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算:-,减法运算:*,乘法运算:/,整除运算:%,取余运算. 算术表达式的格式为(运算符前后可能有空格):运算数 运算符 运算数 请输出相应的结果. 输入一行算术表达式.输出整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位). 样例输入 32+64 样例输出 96思路:使用字符串,从前往后扫,直至结束,把符号提出来,进行运算.注意:输入时一定要用gets(char)库函数,否则会报错的!代码如下: #in…
额,题目是中文的,题意就不用说了= =都看懂喽.写个字符串先把这行计算式存进去,不过不能存一个算一个,因为考虑到乘除法比加减法优先的原则,如果是加号减号就先存着等待计算,如果是乘号除号就直接算出来值就好了.然后,就想到了栈的思想了,写两个栈一个存符号一个存数字,如果是加减号留在栈里,如果是乘除号就直接运算完,符号不再入栈,数字直接得出结果再存入,这样第一遍循环过后就只剩下加减法了,不过这时候还不能直接算,因为栈里再出来的话是反的= =所以再写两个栈出来,把之前的内容反过来再运算就能得到结果了.…
提供几份代码,这题的输入可以用stringsteam处理,先处理乘除后处理加减,正常思路,但是后面统计加减法的时候,对栈的运用错了,我用的时候相当于给它多加了几个括号就错了. 正确的简单解法就是,加法,就让正数入栈,减法就让该数的相反数入栈,之后的操作也不会影响该数的正负,这样处理最简单. 单栈 #include <iostream> #include <sstream> #include <stack> using namespace std; stack<do…
坑了老子半天,结果是 float 范围不够!!! 基本思想: 开一个符号栈,一个数字栈: 碰到数字就入栈,碰到符号就与栈顶符号进行对比,如果当前符号优先级小于栈顶符号,数字栈弹出两个数进行栈顶符号运算,并将结果压回数字栈: 如果当前符号优先级大于栈顶符号,再将当前符号入栈. 关于优先级,* / 比 + - 高是没得说的,然后规定两个*号(包括/号),前面的优先级更大.当然会造成一些问题(如:5 / 3 * 3会得出一个小数),但这是没办法的. 符号栈初始放置一个‘#’,并规定 ‘#’,优先级低于…
表达式求值 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等.经过训练,Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式. 假设表达式可以简单定义为: 1. 一个正的十进制数 x 是一个表达式. 2. 如果 x 和 y 是 表达式,则 函数min(x,y )也是表达式,其值为x…