发布网友 发布时间:2022-05-02 18:17
共1个回答
热心网友 时间:2022-06-21 05:03
点个思路,输入就是一个个字符拼成的字符串,所以你输入的1+2*3他也是个字符串,那么字符串你就可以查询每个字符,找到关键字符+-*/。找到这些符号后,然后你在做判断这个运算符的的优先级,碰到*或/号就直接将符号两边的数据做运算,碰到+或-就再判断下个运算符是否是+或-,如果是则可以进行上1个运算符的+或-运算,如果不是则优先进行后面的*或/运算。提取数据就简单拉。比如字符串123,定义变量a=0;读取到字符1就a=a*10+'1'-'0',再读到下个字符2就a=a*10+'2'-'0';以此类推,即读到数字的字符ch(0<=ch<=9),提取数字的公式为a=a*10+ch-'0'追问感谢回答 不过我还是有些不解追答我不知道你是怎么处理的了,理论上判断出第一个运算符是+或-,然后在不断的找下一个运算符是+或-或结束符,然后一并处理啊,也可以分段处理,比如1+2*3,就直接1步计算;1+2*3+4可以先1+2*3,在然后7+4