C++ 现在输入一行字符串1+2*3/4-5,如何计算它的值?我看到有人说什么atoi atof

C++现在输入一行字符串1+2*3/4-5,如何计算它的值?我看到有人说什么atoiatof这个怎么用?还有就是如何处理这种情况:1+2-3/005*4呢?给我讲一下详细... C++
现在输入一行字符串1+2*3/4-5,如何计算它的值?我看到有人说什么atoi atof 这个怎么用?还有就是如何处理这种情况:1+2-3/005*4呢?给我讲一下详细的思路,没必要给我贴码,但是一定要详细,不要应付说几句!满意的答案我会追加50悬赏!谢啦!
展开
 我来答
厌学依丝9011
推荐于2016-11-04 · TA获得超过1390个赞
知道小有建树答主
回答量:514
采纳率:100%
帮助的人:564万
展开全部
额因为不知道你学过数据结构没,不知道你有没有学过栈这一种数据结构,所以不知道要详细到什么程度,还是先说说atoi和atof吧,atoi是c自带的一个将字符串转换成为整形的函数(atof就是变为浮点型),要包含头文件stdlib.h,比如你想问的005这样,用atoi(005)结果就是5,不过其实你熟的话不用也可以;然后在来说说算法,思路应该是这样的,建两个数组,分别记录你读入的运算符和数字,当你获得这个式子之后,你从左往右读这个式子,如果是数字就记录到数字数组中,是运算符就记录到运算符数组中,同时要判断是否要马上计算你得到的数组和字符,比如当你读入了1+2*,你发现2后面的*,那么你的1+2就不能计算,但是如果你读入的是1+2-,那么你就可以直接计算1+2了,而不用管后面式子是什么,这个算法的思路其实就是用栈这种后进先出的思路,如果你懂的话就很好理解了
更多追问追答
追问
我知道栈这个东西,我就是不知道应该怎么实现优先运算*/之后再+-…
如果用atof的话读1+2*3的话出来的结果是什么啊?
还有,我用string存的表达式,能用atof吗……
还有就是,我也想用栈做,可是碰到005这种状况怎么办?比如1+0-2/005+3*4/6这种…前面那个0就是0,后面那个005的话要是压进去的话不就是三个数字了么,这样该怎么办。
百度网友bca7770
2015-12-23 · 超过27用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:61.5万
展开全部
1字节1字节的判断是数字还是符号
先进行乘除计算
再进行加减计算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式