首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、一、*、/四种运算,例如:234—34+2*$。
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、一、*、/四种运算,例如:234—34+2*$。
admin
2019-01-16
44
问题
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、一、*、/四种运算,例如:234—34+2*$。
选项
答案
逆波兰表达式(即后缀表达式)求值规则如下:设立运算数栈OPND,对表达式从左到右扫描(读入),当表达式中扫描到数时,压入OPND栈。当扫描到运算符时,从OPND退出两个数,进行相应运算,结果再压入OPND栈。这个过程一直进行到读出表达式结束符$,这时OPND栈中只有一个数,就是结果。 float expr(){ //从键盘输入逆波兰表达式,以’$’表示输入结束,本算法求逆波兰表达式的值 float OPND[30]; //OPND是操作数栈 init(OPND): //两栈初始化 float num=0.0: //数字初始化 scanf(”%C”,&x); //x是字符型变量 while(X!=’$’){ switch(x){ case’0’: case’1’: caSe’2’: case’3’: case’4’: case’5’: case’6’: case’7’: case’8’: caSe’9’: while((x>=’0’&&x<=’9’)||X==.’)//拼数 if(X!=’.’){num=num * 10+(ord(X)-ord(’0’));scanf(”%c”,&x);}//处理整数 else{ //处理小数部分 scale=10.0:scanf(”%c”,&x); while(x>=’0’&&x<=’9’){ num=num+(ord(X)一ord(’0’))/scale: scale=scale * 10;scanf(”%c”,&x); } }//else push(OPND,num);num=0.0; //数压入栈,下个数初始化 case’’:break: //遇空格,继续读下一个字符 case’+’:push(OPND,pop(OPND)+pop(OPND));break; case’一’:xl=pop(OPND);x2=pop(OPND);push(OPND,x2一x1);break; case’*’:push(OPND,pop(OPND)*pop(OPND)):break; case ’/’:xl:pop(OPND);x2=pop(OPND);push(OPND,x2/x1);break; default: //其他符号不作处理 }//结束switch scanf(”%c”,&x); //读入表达式中下一个字符 }//结束while(x!=’$’) prinff("后缀表达式的值为%f");pop(OPND); }
解析
转载请注明原文地址:https://www.kaotiyun.com/show/XiRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
清代医学家()强调解剖学对医病的重要性,并通过亲自对尸体的解剖,绘制成《亲见改正脏腑图》25种。
罗马帝国疆域扩张到顶点是在()统治时期。
阅读材料,回答问题:材料一:巴尔干半岛和东地中海地区,历来被英国视为大英帝国的生命线。大战结束前后,美国利用种种借口,千方百计渗入这个连接欧亚两大洲的重要战略地区……1947年2月21日,英国向美国国务院发出了结束援助希腊、土耳其的照会,声称国内严重的经
《汉谟拉比法典》中规定:如果奴隶胆敢对主人说:“你不是我的主人。”他的耳朵就要被割掉。这部法典诞生于()。
宋代至清代我国书籍印刷的主要方式是()
美国历史上第一个具有宪法性质的文件是()。
第一次鸦片战争、第二次鸦片战争的时间,分别对应于法国的()时期和()时期。
“钟鸣鼎食”往往用来形容贵族生活。考古发现的青铜乐器“钟”始见于周代遗址,可能存在于()
下图是某模型机CPU的组成框图。设该CPU采用同步控制逻辑,分取指周期、取第一操作数周期,取第二操作数周期、执行周期四个机器周期,每个机器周期有T0、T1、T2三个节拍。试写出如下双操作数运算指令的微操作命令及节拍安排。ADDR0,(R1)完成功
一个由高速缓冲存储器Cache与主存储器组成的二级存储系统。已知主存容量为1MB,按字节编址,缓存容量为32KB,采用组相联方式进行地址映射与变换,主存与缓存的每一块为64B,缓存共分8组。(1)写出主存与缓存的地址格式(标明各字段名称与位数)
随机试题
人脑对已有表象进行加工、创造形成新表象的心理过程,称为()
A省甲公司拟于2008年向欧盟出口钨粉80吨。2007年8月6日,甲公司向A省商务厅申请办理钨粉出口许可证,被告知钨产品出口配额由A省人民政府行政许可服务中心集中分配,甲公司于2007年8月13日向行政服务中心报送申请钨粉出口许可证材料。行政许可服务中心人
部分群众有意见、反应强烈,可能引发矛盾冲突的,为社会稳定风险中的()
排烟窗应设在排烟区域的顶部或外墙,且室内或走道的任一点至防烟分区内最近的排烟窗的水平距离不应大于()m。
某企业年销货成本100万,年初存货为100万,年末存货60万,该企业年初资产5000万,年末资产5200万,年销售收入为10200万,如果该企业的销售收入为1000万元,销售成本700万元,税率为40%,下列关于市盈率的描述错误的是()
创造思维是在一般思维的基础上发展起来的,是后天培养训练的结果。为培养学生创造思维的品质和能力,教师应该()。
“四杰”在彻底否定齐梁诗歌的基础上,努力创出一条诗歌发展的道路。
设在一次试验中事件A发生的概率为P,现进行N次独立试验,则事件A至少发生一次的概率为______,而事件A至多发生一次的概率为______.
请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存人所指的数组中。例如,若输入17,5,则应输出19、23、29、31、37。注意:部分源程序在文件PROG1.C
AccordingtoBT’sfuturologist,IanPearson,theseareamongthedevelopmentsscheduledforthefirstfewdecadesofthenewmil
最新回复
(
0
)