编译失败?本地编译成功

P1449 后缀表达式

QuantumMix @ 2024-04-10 13:54:29

#include<bits/stdc++.h>
using namespace std;

int tstack[105] , top=0;
char s[260];

int cal(char s[]){
    for(int i=0; s[i] ; i++) {
        if(s[i]>='0'&&s[i]<='9'){
            int x=0; 
            while( s[i] != ' ' ) 
                    x = x * 10 + s[ i ++ ] - '0'; 
            tstack[ ++ top ] = x;
            switch ( s[i] ) {
                case '+': tstack[ --top ] += tstack[ top+1 ]; break;
                case '-': tstack[ --top ] -= tstack[ top+1 ]; break;
                case '*': tstack[ --top ] *= tstack[ top+1 ]; break;
                case '/': tstack[ --top ] /= tstack[ top+1 ]; break;
            }
        }
    }
    return tstack[top];
}

int main(){ 
    gets(s);
    printf("%d",cal(s));
    return 0;
}

by leiaxiwo @ 2024-04-10 14:25:29

@QuantumMix ‘top’上的运算结果可能是未定义的


by ethanlau @ 2024-05-04 10:05:12

@QuantumMix 不能用gets(s);


by QuantumMix @ 2024-05-07 13:11:29

@liverxiwo 谢谢大佬回复


by QuantumMix @ 2024-05-07 13:11:51

@ethanlau ok 谢谢大佬回复


by Zhong201162 @ 2024-07-19 11:26:51

@QuantumMix 你的代码应该使用switch语句超时了


by QuantumMix @ 2024-07-19 23:12:18

@Zhong201162 好的,我再看看吧,谢谢大佬


|