红头发 发表于 2014-7-30 00:58:01

用C++写四则运算的想法(附上源码)

本帖最后由 红头发 于 2014-7-30 14:52 编辑

我主要说的内容是如何将输入的string变量(都是字符)转化成可运算的式子
下面是我的做法:
一个string变量中的字串是这种形式的,其中每一个都是字符变量
(34+6)*5=

要怎么变成我们转化成能计算的式子呢?我是这样想的:先将string中的每个字符都配上标识,表明它是数值还是符号(1代表符号,0代表数值)
(34+6)*5=

100101101

这样我就会知道每一位对应的是什么然后我们重新设置一个整形数组newstr来存放这个string关于这个转化,我的想法如下:如果本来是符号,则转化成数值存入newstr并标识上1表明他是运算符;如果有两个0的情况,说明他们应该是一个数字,则把他们合并存入newstr并标识上0;然后就会得到如下的两个数组
(34+6)*5=


40344364142561


10101101


第二行是newstr中的值第三行是标识数组中的值
然后呢之后转化后缀表达式就是数据结构的内容了看看书就可以啦
这是目前我想出来的还算过的去的想法了,完全闭门造车,有其他想法的鱼油欢迎指点哈,一个晚上的结晶啊运行结果如图:附上源码**** Hidden Message *****

红头发 发表于 2014-7-30 01:02:15

让我来人工置顶

牡丹花下死做鬼 发表于 2014-7-30 09:23:59

确实不错啊O(∩_∩)O~

wead867 发表于 2014-8-1 13:14:33

感谢楼主分享

w_yc2013 发表于 2014-8-1 13:33:21

顶顶~~我想问如果有小数怎么办?(新手不会C++,还望海涵~~)

thrones 发表于 2014-8-1 14:59:41

:funk::funk::funk::funk::funk:

红头发 发表于 2014-8-1 20:42:08

w_yc2013 发表于 2014-8-1 13:33
顶顶~~我想问如果有小数怎么办?(新手不会C++,还望海涵~~)

如果是小数,也一样啊,把小数点标上1,表明是符号,然后整形数组声明称double型,再经过算法,把小数存进数组,之后的转化表达式步骤都一样

archon 发表于 2014-8-1 21:27:44

喵~ >▽<

网络学习 发表于 2014-8-2 00:20:22

俺来学习一下

冷暖自知 发表于 2014-8-2 05:48:13

{:7_177:}热爱鱼C^_^

LoveYang 发表于 2014-8-2 08:58:22

先将表达式中缀转后缀,然后用堆栈实现最简单不过了

火炫龙飞 发表于 2014-8-2 10:13:42

感谢楼主分享{:5_108:}

wangerwanger 发表于 2014-8-2 10:51:21

支持楼主~~~

wangerwanger 发表于 2014-8-2 10:52:38

看完了楼主的程序,佩服佩服~~~

宁生 发表于 2014-8-2 15:23:27

今天刚好在想这个问题

拈花小仙 发表于 2014-8-2 16:14:46

名侦探柯南组加油!

♂情︵☆缘★ 发表于 2014-8-2 16:32:37

拿点钱钱      

ouyangdongxin 发表于 2014-8-2 23:07:49

{:7_148:}

Angel丶L 发表于 2014-8-3 02:14:31

热爱鱼C、

月光骑士 发表于 2014-8-3 09:30:16

看看...
页: [1] 2 3 4
查看完整版本: 用C++写四则运算的想法(附上源码)