发布网友 发布时间:2023-04-24 04:42
共2个回答
热心网友 时间:2023-10-11 06:25
我已经做过了。具体思路:
把输入的算式当作一个链表,可以单链表,也可以双链表,随你。链表中有两种结点,数字结点和运算符结点。
数字结点:有一个double类型的数据域,有一个指针域,指向运算符结点。
运算符结点:有一个char类型的数据域,存放运算符,还有一个指针域,指向下一个操作数。
链表结构大概是: head——>操作数——>运算符——>操作数——>运算符——>操作数……………………——>运算符——>操作数——>NULL。
然后先计算乘除,后计算加减。
乘除运算:从表头开始查找运算符结点中,数据域是*或者/的,找到之后把他两边的数字结点的数据进行计算,结果放到它前一个数字结点中。然后删除该运算符结点和其后的一个数字结点。
相当于把……操作数——>运算符1——>操作数——>运算符2……变成了……操作数——>运算符2……
然后遍历链表执行上边的过程就可以完成乘除法了。
加减法与乘除同理
热心网友 时间:2023-10-11 06:25
要那么详细 5分是不是太少了。。。。。。。。。。。。追问满意的话,还会追加的,我下载的VC在win7上怎么不能使用计算器编程的…………