请大神看看,哪里错了

P1449 后缀表达式

周子涵大帅比 @ 2017-02-06 21:11:03

#include<bits/stdc++.h>
long long stk[1001],slen=0,tmp=0;
char s[1001];
int main()
{
    gets(s);
    int len=strlen(s);
    for(int i=0;i<=len;i++)
    {
        if(s[i]=='@') break;
        if(s[i]<='9'&&s[i]>='0')
        {
            tmp=tmp*10+s[i]-'0';
        }
        else if(s[i]=='.')
        {
            int res;
            if(s[i]=='+') res=stk[slen+stk[slen-1]];
            else if(s[i]=='-') res=stk[slen-1]-stk[slen];
            slen=slen-2;
            slen++;
            stk[slen]=res;
        }
    }    
    printf("%d\n",stk[slen]);
    return 0;
}

by hilsinleri @ 2017-02-06 22:22:08

@周子涵大帅比

  1. 你的判断四则运算符的if语句应该放在if(a[i]=='.')的外面吧

  2. 有加减乘除四则运算

  3. if(s[i]=='+') res=stk[slen+stk[slen-1]];这句话应该为if(s[i]=='+') res=stk[slen]+stk[slen-1];(你可能手滑把右下标符打到后面来了)


by hilsinleri @ 2017-02-06 22:24:42

不好意思,才看到你已经AC了


|