编程-- 基础算术
发布时间
阅读量:
阅读量
描述
输入一个以字符串形式呈现的表达式,计算该表达式的数值结果。
所输入的字符串中包含的有效字符包括数字‘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)
还没有任何评论哟~
