不知如何思考
输入一个算式,遇到等号结束,四种运算符优先级相同,怎么去写这个?
2015-05-19 14:09
2015-05-19 14:11
2015-05-19 14:15
2015-05-19 14:23
2015-05-19 14:41

2015-05-19 15:01
程序代码:#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);
}

2015-05-19 15:23
2015-05-19 16:34