WA

P1449 后缀表达式

a15801016376 @ 2024-04-01 10:34:35

本地运行测试点都是对的,为什么都是WA

#include<stdio.h>
#include<string.h>
#define maxn 100
int main(){
    long long str[maxn];
    int i=1,figure;
    char op;
    memset(str,0,sizeof(0));
    while((op=getchar())!='@'){
        if(op>='0'&&op<='9'){
            figure*=10;
            figure+=op-'0';
        }
        else if(op=='.'){
            str[++i]=figure;
            figure=0;
        }
        else if(op=='+'){
            str[i-1]+=str[i];
            str[i]=0;
            i--;
        }
        else if(op=='-'){
            str[i-1]-=str[i];
            str[i]=0;
            i--;
        }
        else if(op=='*'){
            str[i-1]*=str[i];
            str[i]=0;
            i--;
        }
        else if(op=='/'){
            str[i-1]/=str[i];
            str[i]=0;
            i--;
        }
    }
    printf("%lld",str[2]);
    return 0;
}

by aishiteru_mitsu_ha @ 2024-04-06 18:23:36

不确定是不是问题的根本,你这fiure是不是应该初始化一下?而且,也有可能是ide版本不同的原因,我之前写的时候也遇到过和你一样的问题原帖后来是把num[--top]里的--top移出来单独一行执行才AC(希望能解决:))


|