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 好的,我再看看吧,谢谢大佬