输入为四则运算表达式,仅由整数、+、-、*、/ 、(、) 组成,没有空格,要求求其值。假设运算符结果都是整数 。"/"结果也是整数

表达式  由  项    或    项       进行加减运算组成

项         由  因子 或    因子   进行乘除运算组成

因子     由  带括号的表达式  或   一个数  组成

我这里把int 换成了double

#include <iostream>
#include<math.h>
#include<cstdio>
#include <algorithm>
using namespace std;
double ex(); //表达式
double term();//项
double sub(); //因子 int main()
{
cout<<ex();
} double ex()
{
double result=term();
bool more =true;
while(more)
{
char op=cin.peek();
if(op=='+')
{
cin.get();
result=result+term();
}
else if(op=='-')
{
cin.get();
result=result-term();
}
else
more = false;
}
return result;
} double term()
{
double result=sub();
bool more =true;
while(more)
{
char op=cin.peek();
if(op=='*')
{
cin.get();
result=result*sub();
} else if(op=='/')
{
cin.get();
result=result/sub();
}
else
more = false;
}
return result;
}
double sub()
{
double result=;
char op=cin.peek();
if (op=='(')
{
cin.get();
result=ex();
cin.get();
}
else
{
while(isdigit(op))
{
result=result*+op-'';
cin.get();
op=cin.peek();
}
}
return result;
}

 结语:递归的思想在于  把问题化成 解决方法相同的子问题

Add:四则运算的更多相关文章

  1. 52. 不用+、-、×、÷做加法[add two numbers without arithmetic]

    [本文链接] http://www.cnblogs.com/hellogiser/p/add-two-numbers-without-arithmetic.html [题目] 写一个函数,求两个整数的 ...

  2. 第一章-第一题(小学生四则运算)--By郭青云

    1.项目需求 a) 除了整数以外,还要支持真分数的四则运算. (例如:  1/6 + 1/8 = 7/24) b) 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. c) 逐步扩 ...

  3. 一个简易的四则运算单元...(15.12.15 BUG更新)

    网上找的, 没有作者信息, 只能在这里感谢一下了, 支持标准写法的四则运算 --2015-12-15 修改了一个内存泄漏的BUG - Pop方法没有释放申请的内存 unit Base.Calculat ...

  4. 利用ANTLR4实现一个简单的四则运算计算器

    利用ANTLR4实现一个简单的四则运算计算器 ANTLR4介绍 ANTLR能够自动地帮助你完成词法分析和语法分析的工作, 免去了手写去写词法分析器和语法分析器的麻烦 它是基于LL(k)的, 以递归下降 ...

  5. HDU 5938 Four Operations(四则运算)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  6. 结对编程项目——四则运算vs版

    结对编程项目--四则运算vs版 1)小伙伴信息:        学号:130201238 赵莹        博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...

  7. 四则运算(Android)版

    实验题目: 将小学四则运算整合成网页版或者是Android版.实现有无余数,减法有无负数.... 设计思路: 由于学到的基础知识不足,只能设计简单的加减乘除,界面设计简单,代码量少,只是达到了入门级的 ...

  8. 结对子作业 四则运算 V2.0

    import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import ja ...

  9. C#实现eval 进行四则运算

    昨天在园子里看到有园友,写了相同标题的一篇文章.重点讲的是中缀表达式转换为后缀表达式的算法,但是实现的四则运算 有bug.其实我没看之前也不懂什么是 中缀和后缀表达式,之前有用过js eval 内置函 ...

随机推荐

  1. 使用c语言实现在linux下的openssl客户端和服务器端编程

    使用c语言实现在linux下的openssl客户端和服务器端编程 摘自:https://www.cnblogs.com/etangyushan/p/3679457.html 前几天组长让我实现一个使用 ...

  2. java通过经纬度计算两个点的之间的距离的算法

    通过两个点的经纬度计算距离 从google maps的脚本里扒了段代码,没准啥时会用上.大家一块看看是怎么算的. private const double EARTH_RADIUS = 6378.13 ...

  3. Django和Ajax

    本文目录 一 什么是Ajax 二 基于jquery的Ajax实现 三 案例 四 文件上传 五 Ajax提交json格式数据 六 Django内置的serializers(把对象序列化成json字符串) ...

  4. srping boot thymeleaf 学习总结 (2) - thymeleaf properties 国际化 mesaage

    thymeleaf获取配置properties中的数据与thymeleaf国际化(摘录) 使用thymeleaf提供的国际化 有时候会有直接在模板中获取配置文件properties中的配置信息,比如: ...

  5. view是视图层+action是控制层+service是业务层+dao是数据访问层。

  6. ZOJ3700 Ever Dream 2017-04-06 23:22 76人阅读 评论(0) 收藏

    Ever Dream Time Limit: 2 Seconds      Memory Limit: 65536 KB  "Ever Dream" played by Nigh ...

  7. 创建TFS团队项目时自动建立代码库的文件夹结构

    很多客户都跟我提过一个这样的需求,即需要在创建团队TFS项目时,自动创建起源代码库的文档结构,例如类似下列结构的文件夹: <teamProject>   |- DEVELOPMENT   ...

  8. C# 调用Delphi dll

    delphi dll 源码: library dllres; type char10 = ..] of char; TMydata = packed record id: Integer; name: ...

  9. SQL datediff()函数 时间差

    定义和用法 DATEDIFF() 函数返回两个日期之间的天数. 语法 DATEDIFF(datepart,startdate,enddate) startdate 和 enddate 参数是合法的日期 ...

  10. C# 中 String 类型的详细讲解

    C# 字符串(String) 在 C# 中,您可以使用字符数组来表示字符串,但更常见的做法是使用 string 关键字来声明一个字符串变量.string 关键字是 System.String 类的别名 ...