用普通的c语言写一个能读取text.txt的文件并且把文件里每一行的算式进行计算
用逆波兰表达式来处理算式,且能够进行负数运算
比如文件里第一行是(-4)*(-5)
求个代码
-4 你就理解成 0 - 4 ,这样就把 单目运算符 转换成 双目运算符 了
先将含有负数的表达式,转换为 0 - n 的形式。 例如 (-4) * (-5) 转换为 (0-4) * (0-5) 。
具体判断逻辑为,检索原表达式中的 '-',
如果该字符位于开头,则在字符串开头添加一个数字0. (-5+10
-> 0-5+10
)
如果该字符不位于开头,且前一个字符是左边括号或运算符(+、-、*、/)。
(2+(-5)*6
-> 2+(0-5)*6
) 这里 '-' 之前是左边括号,则在'-'之前添加 0 。
(2+-5*6
-> 2+0-5*6
) 这里 '-' 之前是加号,则在'-'之前添加 0 。
基于以上两点,将原运算表达式规范化后,再使用逆波兰表达式即可。