Add:四则运算

it2022-05-09  151

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

 

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

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

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

 

 

 

 

 

 

我这里把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=0; char op=cin.peek(); if (op=='(') { cin.get(); result=ex(); cin.get(); } else { while(isdigit(op)) { result=result*10+op-'0'; cin.get(); op=cin.peek(); } } return result; }

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

转载于:https://www.cnblogs.com/tttfu/p/10241009.html

相关资源:DirectX修复工具V4.0增强版

最新回复(0)