用C语言编写了一个简单的四则运算计算器,输入以#号结束
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
#define OKAY 1
#define ERROR 0
char ops[7]={'+','-','*','/','(',')','#'};
int cmp[7][7]={
{2,2,1,1,1,2,2},
{2,2,1,1,1,2,2},
{2,2,2,2,1,2,2},
{2,2,2,2,1,2,2},
{1,1,1,1,1,3,0},
{2,2,2,2,0,2,2},
{1,1,1,1,1,0,3},
};
typedef struct {
char op[101];
int top;
}Stack1;
typedef struct {
int num[100];
int top;
}Stack2;
Stack1 *s1;
Stack2 *s2;
int InitStack1(Stack1 *s){
if(!s){
return ERROR;
}
s->top=-1;
return OKAY;
}
int InitStack2(Stack2 *s){
if(!s){
return ERROR;
}
s->top=-1;
return OKAY;
}
int pushStack1(Stack1 *s ,char c){
if(s->top==MAXSIZE-1){
return ERROR;
}
s->top++;
s->op[s->top]=c;
return OKAY;
}
int pushStack2(Stack2 *s,double n){
if(s->top==MAXSIZE-1){
return ERROR;
}