C语言,计算器中的括号怎么做?

Python013

C语言,计算器中的括号怎么做?,第1张

用堆栈实现。将含有多重括号的中缀表达式翻译成后缀表达式,然后进行计算。步骤是:

从左到右依次检查每个字符

1.如果该字符是数字,直接加入到输出队列

2.如果该字符是左括号(,将其加入堆栈

3.如果该字符是右括号),开始出栈,将栈中元素依次加入到输出队列中,直到碰到左括号'('。左括号本身不加入队列。如果栈中没有左括号,返回匹配错误。

4.如果该字符是非括号运算符,将该字符的优先级和栈顶元素作比较。如果优先级高于栈顶元素则入栈,否则添加到输出队列中。

表达式全部检查完毕后,将栈中所有剩余元素加入到输出队列中。如果栈中含有括号,返回匹配错误。

最后得到的输出队列就是后缀表达式。

#include<stdio.h>

main()

{double a,b,s

char ch

printf(":输入要计算的式子,如:10+20\n")

scanf("%lf%c%lf",&a,&ch,&b)

if(ch=='+')

s=a+b

else

if(ch=='-')

s=a-b

else

if(ch=='*')

s=a*b

else

s=a/b

printf("(%lf)%c(%lf)=%lf\n",a,ch,b,s)

}