首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算,例如:234—34+2* $。
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算,例如:234—34+2* $。
admin
2016-03-29
52
问题
从键盘上输入一个逆波兰表达式,用伪码写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、-、*、/四种运算,例如:234—34+2* $。
选项
答案
逆波兰表达式(即后缀表达式)求值规则如下:设立运算数栈OPND,对表达式从左到右扫描(读入),当表达式中扫描到数时,压入OPND栈。当扫描到运算符时,从OPND退出两个数,进行相应运算,结果再压入OPND栈。这个过程一直进行到读出表达式结束符$,这时OPND栈中只有一个数,就是结果。 float expr(){ //从键盘输入逆波兰表达式,以’$’表示输入结束,本算法求逆波兰表达式的值 float OPND[30]; //OPND是操作数栈 init(OPND); //两栈初始化 float num=0.0; //数字初始化 scanf(”%e”,&x); //x是字符型变量 while(X!=’$’){ switch(x){ case‘0’. case’1’: case’2’: case ’3’: case’4’: case’5’: ease ’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; ease ’/’:xl=pop(OPND);x2=pop(OPND); push(OPND,x2/x1);break; default: //其他符号不作处理 }//结束switch seanf(”%c”,&x); //读入表达式中下一个字符 }//结束while(x!=’$’) pfintf(”后缀表达式的值为%f’’);pop(OPND); } 提示:假设输入的后缀表达式是正确的,未作错误检查。算法中拼数部分是核心。若遇到大于等于’0’且小于等于’9’的字符,认为是数。这种字符的序号减去字符’0’的序号得出数。对于整数,每读入一个数字字符,前面得到的部分数要乘上10再加新读入的数得到新的部分数。当读到小数点时,认为数的整数部分已完,要接着处理小数部分。小数部分的数要除以10(或10的幂数)变成十分位、百分位、千分位数等,与前面部分数相加。在拼数过程中,若遇非数字字符,表示数已拼完,将数压入栈中,并且将变量num恢复为0,准备下一个数。这时对新读入的字符进入’+’、’一、’*’、’/’及空格的判断,因此在结束处理数字字符的case后,不能加入:break语句。
解析
转载请注明原文地址:https://kaotiyun.com/show/jnRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下面条约没有涉及德国的赔款问题的是()。
下列各项中,《凡尔赛和约》没有做出最后规定的是()。
西汉初年,在刘邦翦灭异姓诸侯王的过程中,被保留下来的异姓诸侯王是()
白虎观会议是由汉()帝主持的。
周人重视婚姻,对婚礼尤为讲究。周代的婚礼有六项程序,即:①纳征②问名③纳采④请期⑤亲迎⑥纳吉下列选项顺序排列正确的是()
火的使用,是人类在征服自然的进程中所取得的伟大成果。人类开始使用天然火是在()。
解放军渡江战役中横渡长江的东西两个攻击点是()。
给定序列{3,5,7,9,11,13,15,17),(1)按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成后的二叉排序树,并求在等概率情况下查找成功的平均查找长度。(2)按表中元素的顺序构造一棵平衡二叉树,并求其在等概率情
设结点x和y是二叉树中任意的两个结点,在该二叉树的先序遍历序列中x在y之前,而在其后序遍历序列中x在y之后,则x和y的关系是()。
以下关于图的说法正确的是()。.I在一个有向图的拓扑序列中,若顶点a在顶点b之前,则图中必有一条弧Ⅱ若一个有向图的邻接矩阵中对角线一下元素均为O,则该图的拓扑序列必定存在Ⅲ在.AOE网中一定只有一条
随机试题
犬,5啰岁,咳嗽,体温40.3℃,肺部听诊有广泛性湿音,两侧鼻孔呼出气体都呈现尸臭气味,则该病可能是()。
磷脂酶A的作用激肽酶的作用
患儿,8个月,母乳喂养,已添加辅食。2天前开始腹泻,蛋花汤样便,10~15次/日。其母询问目前患儿的喂养问题,正确的回答为
下列用益物权中,属于从物权的是()。(2014年)
马克思主义认为,法的本质存在于国家意志、阶级意志和社会存在、社会物质条件之间的对立统一关系中。下列关于法的本质,说法正确的是:
甲公司与乙公司签订了一份买卖合同。合同约定:乙公司为甲公司生产某种型号的自行车500辆,每辆单价200元;甲公司应交付定金2万元;如果一方违约,则应支付总价款的20%作为违约金。合同签订后,甲公司立即将定金交付乙公司,并很快与丙公司就同一批货物签订了一份买
谈谈你对工作和学习之间的矛盾的看法。
意志行动的特征不包括()
X公司2013年净利润15000万,折旧2000万,资产负债表如下:(单位:万)预计2014年X的净利润、折旧、净盈利资本都增长10%,X公司有如下4个候选项目(均为永续不增),假设投资所需要资金来自自有资金,无风险利率为4%,市场风险溢价为8%,税率
Wheredidthespeakerliveforfiveyears?
最新回复
(
0
)