Add:四则运算
Posted tttfu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Add:四则运算相关的知识,希望对你有一定的参考价值。
输入为四则运算表达式,仅由整数、+、-、*、/ 、(、) 组成,没有空格,要求求其值。假设运算符结果都是整数 。"/"结果也是整数
表达式 由 项 或 项 进行加减运算组成
项 由 因子 或 因子 进行乘除运算组成
因子 由 带括号的表达式 或 一个数 组成
我这里把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; }
结语:递归的思想在于 把问题化成 解决方法相同的子问题
以上是关于Add:四则运算的主要内容,如果未能解决你的问题,请参考以下文章