如题,这个问题这几天一直出现,今天挑了一道稍微短一点的题目,希望大神能帮忙解惑!
原题目的链接(后缀表达式qiu'zhi)
#include<stdio.h>
typedef struct
{
int a[300];
int top;
} stack;
int main()
{
int i,sum,e=0,temp,k;
char s[300]={'0'};
stack L;
gets(s);
i=0;
for(i=0; s[i]!='@'; i++)
{
if(s[i]<='9'&&s[i]>='0')
{
L.top++;
temp=s[i]-'0';
k=i+1;
while(s[i]!='@')
{
if(s[k]<='9'&&s[k]>='0')
{
temp=temp*10+(s[k]-'0');
k++; i++;
}
else{break;}
}
L.a[L.top]=temp;
}
else if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/')
{
switch(s[i])
{
case '+':e=L.a[L.top-1]+L.a[L.top]; break;
case '-':e=L.a[L.top-1]-L.a[L.top]; break;
case '*':e=L.a[L.top-1]*L.a[L.top]; break;
case '/':e=L.a[L.top-1]/L.a[L.top]; break;
default:break;
}
L.a[L.top-1]=e;
L.a[L.top]=0;
L.top--;
}
}
printf("%d",L.a[L.top]);
return 0;
}