首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、~、*、/四种运算,例如:234—34+2 * $。
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、~、*、/四种运算,例如:234—34+2 * $。
admin
2019-08-15
31
问题
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、~、*、/四种运算,例如: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);hum=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!='$’) printf("后缀表达式的值为%f")i pop(OPND); } 提示:假设输入的后缀表达式是正确的,未作错误检查。算法中拼数部分是核心。若遇到大于等于'0'且小于等于'9'的字符,认为是数。这种字符的序号减去字符'0'的序号得出数。对于整数,每读入一个数字字符,前面得到的部分数要乘上10再加新读入的数得到新的部分数。当读到小数点时,认为数的整数部分已完,要接着处理小数部分。小数部分的数要除以10(或10的幂数)变成十分位、百分位、千分位数等,与前面部分数相加。在拼数过程中,若遇非数字字符,表示数已拼完,将数压入栈中,并且将变量num恢复为0,准备下一个数。这时对新读入的字符进入'+'、'一、'*'、'/'及空格的判断,因此在结束处理数字字符的case后,不能加入break语句。
解析
转载请注明原文地址:https://kaotiyun.com/show/8OCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
1908年8月,清政府颁布(),规定皇帝具有至高无上的权力。
1628年出版了《心血运动论》一书,论证了血液在全身的循环运动,使生理学发展为科学的是()。
西周的分封制相当发达,是西周的重要政治制度,也是西周历史的一个显著特点。根据所学知识,回答问题西周建立之后,派遣同姓贵族和异姓贵族及归顺的异族首领到各地区,建立国家以藩屏护卫周室,分别分在卫、鲁、唐、燕的贵族是()
一个TCP连接总是以1KB的最大段发送TCP段,发送方有足够多的数据要发送。当拥塞窗口为16KB时发生了超时,如果接下来的4个RTT(往返时间)时间内的TCP段的传输都是成功的,那么当第4个RTT时间内发送的所有TCP段都得到肯定应答时,拥塞窗口大小是
以下()协议完成了从网卡到IP地址的映射。
编写判定给定的二叉树是否是二叉排序树的函数。
若干个等待访问磁盘者依次要访问的柱面为20,44,40,4,80,12,76,假设每移动一个柱面需要3毫秒时间,移动臂当前位于40号柱面,请按下列算法分别计算为完成上述各次访问总共花费的寻找时间。(1)先来先服务算法;(2)最短寻找时间
在请求分页存储管理中,若采用FIFO的页面淘汰算法,当分配的页面数增加时,缺页中断的次数()。
假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录16384个磁盘块的空闲状态。设某单面磁盘旋转速度为6000r/min,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁
一条双字长的取数指令(LDA)存于存储器的200和201单元,其中第一个字为操作码OP和寻址特征M,第二个字为形式地址A。假设PC当前值为200,变址寄存器IX的内容为100,基址寄存器BR的内容为200,存储器相关单元的内容如下表所示:下表各列分别为
随机试题
妇科杂病与哪些脏器有关
痤疮最多见的皮损是
妊娠期间摄入过量可导致新生儿血钙过高的是妊娠5个月后应用时,可使婴儿牙齿黄染、釉质发育不全的是
中国甲公司与法国乙公司商谈进口特种钢材,乙公司提供了买卖该种钢材的格式合同,两国均为1980年《联合国国际货物销售合同公约》缔约国。根据相关规则,下列哪一选项是正确的?(2014年卷一40题)
图示电路具有:
已做出原产地预确定决定的货物,自预确定决定做出之日起1年内实际进口时,经海关审核其实际进口的货物与预确定决定所述货物相符,且本条例规定的原产地确定标准未发生变化的,海关不再重新确定该进口货物的原产地。
1924年3月21日,“马萨诸塞投资信托基金”设立,成为世界上第一只()基金。
某股份公司的经理在执行职务时,违反法律规定,给公司造成巨大损失,该公司的甲、乙、丙三位股东分别连续180日以上持有公司1.1%、0.7%、0.5%的股份。根据《公司法》规定,该公司股东行使对经理提起诉讼的方式有()。
男、女两名运动员在长120米的斜坡上练习跑步(坡底为A,坡顶为B)。两人同时从A点m发,在A、B之间不停地往返奔跑。如果男运动员上坡速度是3米/秒,下坡速度是5米/秒;女运动员上坡速度是2米/秒,下坡速度是3米/秒,那么两人第二次迎面相遇的地点离A点多少米
作者长期专业从事古文字研究和《说文》研究,对古文字研究成果和汉字形体发展演变脉络清楚,这一学养确保了作者在考正过程中能把学界最优秀的研究成果引证到考正中来。如黄字,许慎释其本义为“地之色也”,构形分析为“从田,从,亦声”。并认为是古文光字。后来人们在利用古
最新回复
(
0
)