如何用C语言的逆波兰表达式处理负数

用普通的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 。

基于以上两点,将原运算表达式规范化后,再使用逆波兰表达式即可。