简易计算器的一般实现

   实现一个可以完成加减乘除以及长式运算的简易计算器。乘除的优先级高于加减,运算的数都是
正整数以及 0,且不把 0 当做除数,运算结果保留三位小数。
   要求:可以连续输入算式,并且有算式格式错误判定
2+7-1
=8.000
9-8*2+1/3
=-6.667
9++1
error

1、计算部分的实现思路

首先,因为仅需要实现加减乘除的功能,优先级最高为乘除运算。

所以,我们可以构建一个字符数组,用于接收算式;构建两个数组对算式进行分离,一个用于存储

数字,一个用于存储符号。

对于符号数组进行遍历,读取到乘或者除运算时,取出数字数组中的操作的进行乘运算后,将数组

后面的数字按位向前移动,重复以上操作即可。

    例如:9-8*2+1/3

    数组a:9 8 2 1 3

    数组b:- * +  /     

遍历时,读取到*后,取出操作子8、2相乘,后数组更新为

    数组a:9 16 1 3

    数组b:-  +  /     

2、排除符号错误

符号错误分为一下几类:

(1)符号连续

这一类问题往往在遍历的时候就可以发现,当我在读取到一个符号后,下一位仍就为符号是即可输

出error,结束程序。

6++7
error

(2)符号首尾

这一类问题在遍历的时候也可以发现

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值