Advertisement

编程-- 基础算术

阅读量:

描述

输入一个以字符串形式呈现的表达式,计算该表达式的数值结果。

所输入的字符串中包含的有效字符包括数字‘0’至‘9’,以及运算符‘+’、‘-’、‘*’、‘/’,同时包含括号类符号‘(’、‘)’、‘[’、‘]’、‘{’、‘}’。并且所给表达式保证其结构合法。

数据范围方面,表达式在计算过程及最终结果中的数值绝对值均不超过1000,字符串长度则满足1到1000之间的限制。

输入描述:输入一个算术表达式

输出描述:得到计算结果

小标题

输入表达式为:3+2*{1+2*[-4/(8-6)+7]},计算结果为25。首先处理无括号的情形,按照先乘除后加减的运算顺序进行计算,这一过程可通过栈结构实现。当遇到数字时将其压入栈中,若后续出现乘号或除号,则从栈中弹出顶部元素,与下一个数字进行相应运算,并将结果重新压入栈中。最终栈中仅保留加法项,对所有加数求和即可得出最终结果。

其次,在遇到左括号时,可直接递归执行上述步骤进行处理。当检测到右括号时,将括号内的计算结果作为一项加数返回至上一层栈结构中继续运算。

复制代码
 #include <stdio.h>

    
 #include <string.h>
    
 #include <ctype.h>
    
  
    
 int pos;
    
  
    
 int 

全部评论 (0)

还没有任何评论哟~