C语言作业,计算三个数字间的加减乘除,三个数字两个运算符两个括号,考虑优先级

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 19:30:01
C语言作业,计算三个数字间的加减乘除,三个数字两个运算符两个括号,考虑优先级

C语言作业,计算三个数字间的加减乘除,三个数字两个运算符两个括号,考虑优先级
C语言作业,计算三个数字间的加减乘除,三个数字两个运算符两个括号,考虑优先级

C语言作业,计算三个数字间的加减乘除,三个数字两个运算符两个括号,考虑优先级
所谓后缀表达式,就是将a @ b写成 a b @
其中前者是我们日常生活中的中缀表达式,后面的就是后缀表达式.
例如7*8 化为 7 8 *
例如6-9 化为 6 9 -
例如5*(3+2),化成后缀表达式就是5 3 2 + *
可知后缀表达式无括号.
然后依次扫描符号,数字就直接进栈,遇到运算符就将前两个数字出栈、运算后结果再进栈:
例如5 3 2 + *
扫描5——>5
扫描3——>5 3
扫描2——>5 3 2
扫描+——>5 5
扫描*——>25


所以你现在要解决的问题是如何将中缀表达式转化成后缀表达式.
这个依然是通过栈来实现.
从左到右扫描,遇到数字直接输出,遇到符号比较优先级进栈或输出(优先级大的进栈,小的或相等的直接输出.其中左括号优先级大于乘除大于加减),遇到左括号则进栈,遇到右括号则将栈内左括号之内的符号都输出,遇到末尾就将栈内的所有符号都输出.
例如5*(3+2)

扫描5 直接输出
扫描* 进栈(栈内:*)
扫描( 进栈(站内:* ()
扫描3 直接输出
扫描+ +的优先级小于(的优先级,进栈,(栈内:* ( +)
扫描2 直接输出
扫描) 将站内(之前的全部输出,即输出了+
扫描到末尾,将栈内所有东西全部输出,即输出了*
综上,输出了5 3 2 + *


也是我回答的

C语言作业,计算三个数字间的加减乘除,三个数字两个运算符两个括号,考虑优先级 用c语言编写大数运算,求程序!两个大数的加减乘除编程计算两个大整数(每个大数最多包含1000位数字)的加减乘除运算结果(除不尽时只给出商的整数部分).输入:第一行包含了总的计算 C语言中 怎么样进行三位数的四则运算?就是说要编一个能三个数进行加减乘除的简单计算器 c语言;计算一个自然数的各位数字之和与各位数字的平方和 编写一个C语言程序,输入abc三个值,求最大者不交作业要打屁屁的 c语言三个数大小排列求助!三个数字大小排列,数字类型有整数,负数,小数,数字长度不定,输入字母等时提示错误. c语言计算器程序设计包含加减乘除简单的函数运算 会c语言的来,麻烦各位大侠了.1—9组成三个3位的平方数将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不许有重复数字,也不许同其它组的三个数字重复,要求 c语言作业:1.已知三角形的三边长A,B,C,计算三角形面积的公式为 S=1/2(a+b+c),area=根号s(s-a)(s-b)(s-c) C语言作业:编程计算Fibonacci数列第100位数与第101位数的比值. 用C语言编写一个程序,计算一个整数的三次方,并输出计算结果 C语言 计算1到N中数字1出现的个数 用C语言编程,输入一个正整数,计算并显示该数的各位数字之和. 用C语言编写:计算100到1000之间各位数字之和为5的个数 C语言:输入一个正整数, 计算并显示出该数的各位数字之和. C语言编程,输入10个数字计算平均数,并输出大于平均数的元素 C语言 产生十个随机数,然后任意计算一个数字产生随机的次数! 输入一个数,计算所有数字之和的C语言程序