算术表达式求值课程设计
设计概要
1. 初始化两个空栈,一个是操作符栈,一个是操作数栈。
程序代码如下:
typedef struct{
float *base;
float *top;
float *move; //为了后面输出栈的变化过程,设置末 move 指针
int stacksize;
}sqstack1;//本程序采用了小数点的操作,所以采用了浮点型的数
typedef struct{
char *base;
char *top;
char *move;
int stacksize;
}sqstack2;
sqstack1 OPND;//运算数栈
sqstack2 OPTR;//运算符栈;
2. 采用字符串读入,再用 checkstring 函数检验其中的字符的输入,语法正确性,程序代码
如下:(此程序中的要求是首字符为数,尾字符为“#”)
int checkstring(char *s){
int i=0;
int k=0;
char* p;
p=s;
char c=*s;
if(c=='+'||c=='-'||c=='*'||c=='/'||c=='.'||c==')') {
cout<<"字符串的第一个数输入为"<<c<<"语法错误!";
return 0;
}//第一个字符的判断
while((*p)!=' '){
if((*p)=='#') break;
else p++;
}
if((*p)==' '){
cout<<"此输入中无结束符'#',程序会有错误";
return 0;
}//结束符的判断
p=s;
while((*s)!='#'){