时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:6725

解决:2454

题目描述:
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
输入:
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
输出:
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
样例输入:
1 + 2
4 + 2 * 5 - 7 / 11
0
样例输出:
3.00
13.36
来源:
2006年浙江大学计算机及软件工程研究生机试真题

思路:

可以用动态规划的思路来做。保存两个数和中间的计算符,逐步向后推进即可。

据说用栈做这个题效果也不错。

代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>#define M 200int isnumber(char c)
{return ('0' <= c && c <= '9');
}double compute(double a, char op, double b)
{switch(op){case '+':return a+b;case '-':return a-b;case '*':return a*b;case '/':return a/b;}
}void combine(double *a, char *op, double *b, char opnew, double c)
{if (opnew == '+' || opnew == '-'){*a = compute(*a, *op, *b);*op = opnew;*b = c;}else*b = compute(*b, opnew, c);
}int main(void)
{char s[M+1], tmp[M+1];int i, j;double a, b, c;char op, opnew;double res;while (gets(s)){if (strcmp(s, "0") == 0)break;a = 0.0;b = 0.0;op = '+';i = 0;while (s[i]){if (i != 0){i++;opnew = s[i++];i++;}elseopnew = '+';j = 0;while (isnumber(s[i]))tmp[j++] = s[i++];tmp[j] = '\0';c = atoi(tmp);combine(&a, &op, &b, opnew, c);}res = compute(a, op, b);printf("%.2lf\n", res);}return 0;
}
/**************************************************************Problem: 1019User: liangrx06Language: CResult: AcceptedTime:0 msMemory:912 kb
****************************************************************/

转载于:https://www.cnblogs.com/liangrx06/p/5084012.html

九度OJ 1019:简单计算器 (基础题、DP)相关推荐

  1. 九度OJ 1019 简单计算器

    题目描述: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 输入: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔 ...

  2. 九度 oj 1019

    题目描述: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 输入: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔 ...

  3. 打不开磁盘配额linux,九度OJ 1455 珍惜现在,感恩生活 -- 动态规划(背包问题)...

    题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买.请问:你用有限的资金最 ...

  4. 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)

    题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有 ...

  5. Freckles - 九度 OJ 1144

    Freckles - 九度 OJ 1144 题目 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: In an episode of the Dick Van Dyke show, l ...

  6. 非常可乐(九度 OJ 1457)

    非常可乐(九度 OJ 1457) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 1.题目描述: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为.因为每次当 see ...

  7. 九度OJ 题目1179:阶乘

    /********************************* * 日期:2013-2-8 * 作者:SJF0115 * 题号: 九度OJ 题目1179:阶乘 * 来源:http://ac.jo ...

  8. 九度OJ——1028继续畅通工程

    题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修 ...

  9. Leagal or Not - 九度 OJ 1448

    Leagal or Not - 九度 OJ 1448 题目 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: ACM-DIY is a large QQ group where man ...

最新文章

  1. iOS开发UI篇—transframe属性(形变)
  2. JSP页面中使用JSTL标签出现无法解析问题解决办法
  3. python wing 免费下载安装
  4. OpenCV 图像的加法
  5. 【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇
  6. 金蝶云星空操作手册_金蝶国际CFO林波谈云业务:金蝶云·星空预计今年可以实现盈利...
  7. CRMEB v2.5.2常见错误修复办法
  8. 同时防服务器维修,加强服务器日常运维,避免宕机灾难发生
  9. sql server charindex函数和patindex函数详解(转)
  10. linux网站目录在哪_果核建站教程【二】环境安装与搭建第一个网站
  11. oracle列转行wm_concat,Oracle列转行函数wm_concat版本不兼容解决方案
  12. Hive 数据质量检测
  13. Codeforces Manthan, Codefest 18 (rated, Div. 1 + Div. 2) E.Trips
  14. 常用win10优化工具(后续继续更新)
  15. mbedtls 自带SSL demo调试
  16. 给div添加蒙版(遮罩?)
  17. 电子警察的系统结构和功能设计
  18. 无向简单图怎么判断_简单图的判定
  19. android列表倒计时,RecyclerView实现列表倒计时
  20. sqlserver 取余和取整

热门文章

  1. 计算机英语作文句子,英语作文经典句子
  2. spring使用JUnit测试,@Autowired无法注入原因
  3. IDEA设置虚拟机参数
  4. crossdomain 可用
  5. .Net NPOI 根据excel模板导出excel、直接生成excel
  6. 转 linux常用查看硬件设备信息命令
  7. sigaction函数学习
  8. 最长回文子串 hihocode 1032 hdu 3068
  9. 网格弹簧质点系统模拟(Spring-Mass System by Verlet Integration)附源码
  10. POJ1083 Moving Tables