C语言表达式计算器
为了方便了解流程,在程序中把计算过程也输出了.而且栈操作的实现部分也是自己实现的.程序用两个栈,optr寄存运算符,opnd寄存操作数和运算结果.输入的表达式以等号结束,例如:2*(1+2)=6P.RY9P"m~ r$Z|W
/**************表达式计算器************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>5AW&h*Z-y9}I
#include <conio.h>-A4KO4C"c2HS_]`"O
#include <malloc.h>
#define STACK_SIZE 100
#define APPEND_SIZE 10
'moW/WgdU"m/~
struct SNode{$g rRfMHSz"K G
float data; /*存放操作数或者计算结果*/
char ch; /*存放运算符*/
};XZ7SW[
1f"d%~r8@-uJ
struct Stack{2\]O!UB8Q0`,ve\
SNode *top;4gF7wFv`
SNode *base;
int size;
};
/*栈操作函数*/9z-o#v;yH
int InitStack(Stack &S); /*创建栈*/'G'H1z,k0U yL[
int DestroyStack(Stack &S); /*销毁栈*/],qL)q#l&so.K%rY
int ClearStack(Stack &S); /*清空栈*/