大二时候学C++写的程序,发上来给各位参考一下 #include<iostream.h> #include<stdlib.h> #include<ctype.h> int add(); int mul(); int number(); void error(); static char exp[81]; static int pos; int main(){ int ans; do { pos=0; cout<<"请输入表达式"<<endl; cin>>exp; ans=add(); if(exp[pos]!='\0') error(); if(ans!=0) cout<<ans<<endl; }while(ans!=0); return 0; } int add() { int rtn=mul(); while(exp[pos]=='+'||exp[pos]=='-') { int op=exp[pos++]; int opr2=mul(); if(op=='+') rtn+=opr2; else rtn-=opr2; } return rtn; } int mul() { int rtn=number(); while(exp[pos]=='*'||exp[pos]=='/') { int op=exp[pos++]; int opr2=number(); if(op=='*') rtn*=opr2; else rtn/=opr2; } return rtn; } int number() { int rtn; if(exp[pos]=='(') { pos++; rtn=add(); if(exp[pos++]!=')') error(); return rtn; } if(!isdigit(exp[pos])) error(); rtn=atoi(exp+pos); while(isdigit(exp[pos])) pos++; return rtn; } void error() { cout<<'\r'; while(pos++) cout<<' '; cout<<"error"<<endl<<'\a'; exit(-1); } 
|