不知如何思考
输入一个算式,遇到等号结束,四种运算符优先级相同,怎么去写这个?
#include <stdio.h> int isnumeric(char a){return a>47&&a<58;} //检测字符是否为数字 int doeval(int b,int j,char f) {//做四则运算 if(f=='+')b=b+j; if(f=='-')b=b-j; if(f=='*')b=b*j; if(f=='/')b=b/j; return b; } void main() { int b=0,j,i; char f='+',a[100]; printf("输入算式:"); gets(a); for(i=0,j=0;a[i];i++) { if(isnumeric(a[i]))j=j*10+a[i]-'0'; else { if(a[i]=='+'||a[i]=='-'||a[i]=='*'||a[i]=='/'||a[i]=='=') { b=doeval(b,j,f); if(a[i]=='=')break; f=a[i]; j=0; } } } if(!a[i]) {//如果算式中不存在等于号的处理 a[i]='='; a[i+1]='\0'; b=doeval(b,j,f); } printf("%s %d\n",a,b); }