-
您想举个vc6的例子吗?
-
我已经做到了。 具体思路:
将输入方程想象成一个链表,无论是单链还是双链,它都是你的。 链表中有两种类型的节点,数字节点和运算符节点。
数值节点:有一个 double 类型的数据字段,其中包含指向操作员节点的指针字段。
链表结构大致如下:head - >操作数 - >运算符 - >操作数 - >运算符 - >操作数.........运算符 – >操作数 – >null。
然后先计算乘法和除法,然后计算加法和减法。
乘法除法:从表格的标头开始寻找算子节点,数据字段为*或,找到后再计算表格两边的数节点数据,并将结果放入上一个数字节点中。 然后删除操作员节点及其后面的数字节点。
这相当于把......操作数 - >运算符 1 - >操作数 - 运算符 > 2 ......它变得......操作数 – >运算符 2......
然后遍历链表并执行上述过程以完成乘法和除法。
加法和减法与乘法和除法相同。
-
说得这么详细,5分也不算太少......
-
你的问题太宽泛了,你没有指定使用什么图形API,指定语言没有意义,比如你是要用MFC框架还是QT框架等等,你应该指定它。
-
#include
#include
#include
#define pi
using namespace std;
void choice_menu();函数声明 char menu();
void sanjiao();
void calcur();
void duishu();
void zhishu();
int main()
char menu()
return choice;
void choice menu()}void calcur() 常量操作 else if(b==0).
-
a=1, b=1, c=3, d=4, m=0, n=6 这是一个有趣的方程式:
计算过程如下:
1:m=a>b --m=0,ab保持不变,变为0&&(n=c>d)||a==b--;
2:0&&(n=c>d),由于第一个数字是0,所以结果一定是0,n=c>d不计算,所以n、c、d值保持不变,整个计算变为:0||+a==b--;
3. 由于 ++a 首先执行 a+1,而 b-- 需要在表达式完成后执行,因此它变为 a=(0||2=2),b--,4,最终结果为:a=1,b=1,c=3,d=4,m=0,n=6