[问题] C的经典计算机题目

楼主: povertytrap (povertytrap)   2016-03-12 19:32:58
各为前辈
在下是要考国家身障考试资讯四等的考生(第三年.........)
我写了普考、身特、地特、铁路等考试的考古题,偏偏这题我没有头绪
这是97年身特4等的题目,也是典型的写简易计算机题目
请写一段程式可接收由键盘输入之一行算数四则运算之式子,例如5*3+8/2-7,并将
其运算结果显示在萤幕上。(40 分)
附注说明:
1.此行算数四则运算式子之数字将只会是正整数。
2.此行算数四则运算式子之运算符号将只会有+(加)、-(减)、*(乘)、/(除)。
3.此行算数四则运算式子不会有括号。
4.此行算数四则运算式子之长度将不超过25。
以下是我的程式码
http://ideone.com/MCkyx6
我知道如何输入算式且由左而右算完(就是没判断运算子优先权)
我卡在不知如何实作先*/在+-
我有事过先算*/并把*/结果放在阵列,且宣告一个阵列放+-
在呼叫addsub函数去做+-,后来我发现我做不出
我手上有google到此题的解答(可是看不懂.........)
我个人还是希望能自己解出属于自己的写法
希望有前辈可以给我点提示
如需要线上沟通我有skype、Google Hangouts等工具可提供
时间也可配合
附带一提
多型我了解
今天考古题有题要我解释运算子超载
wiki有提到
a+b*c可写成add(a,multiply(b, c))这就是运算子超载
如果用文字解答我这样说
可以将+-*/等运算子利用其他方法表示,再举上方那例子可以吗?
作者: testPtt (测试)   2016-03-12 19:47:00
考你堆叠 有的书有教 补习班必教
作者: jackalwei (旅人)   2016-03-12 20:11:00
楼上正解,资结有教到,我记得那时候还要画步骤
作者: bibo9901 (function(){})()   2016-03-12 20:21:00
中序转后序
楼主: povertytrap (povertytrap)   2016-03-12 22:31:00
我知道这个,中序后序流程图我也会画,我再回去翻书过两天在贴程式码给各位帮忙看一下(资结知道观念但少实作)因为我google的这份解答没用到那概念(写超短超简单)才想说有没有简单直观一点非中序作法
作者: fatrabitree (胖兔子)   2016-03-12 23:09:00
用while去扫,检查算式有没有*/,有就算,没有就+-算完把对应的结果放回去,然后符号跟数字删掉
作者: s25g5d4 (function(){})()   2016-03-13 03:01:00
https://jsfiddle.net/so45oy1z/ 当 pseudo code 看吧还是看不懂就看注解,理解我写的策略但是这只适用于加减乘除,只要遇到括号就不可能这样写了转前序/后序才是正规的做法
楼主: povertytrap (povertytrap)   2016-03-13 10:30:00
虽然对javascript不熟,还是谢谢楼上大大,等晚上回宿舍在翻资结书实作中序看看
作者: noodleT (面T)   2016-03-13 12:15:00

Links booklink

Contact Us: admin [ a t ] ucptt.com