16分求助!

P1449 后缀表达式

saixingzhe @ 2022-09-27 21:58:45

#include<bits/stdc++.h>
using namespace std;
char s[54]; 
int a[50],j;
int main(){
    scanf("%s",s);
    for(int i=0;i<strlen(s)-1;i++){
        if('0'<=s[i]&&'9'>=s[i])    a[j++]=s[i]-'0';
        if('+'==s[i])   j-=2,a[j]=a[j]+a[j+1],j++;
        if('-'==s[i])   j-=2,a[j]=a[j]-a[j+1],j++;
        if('*'==s[i])   j-=2,a[j]=a[j]*a[j+1],j++;
        if('/'==s[i]&&a[j-1]!=0)    j-=2,a[j]=a[j]/a[j+1],j++;

    }
    printf("%d",a[0]);
    return 0;
}

by ud2_ @ 2022-09-27 22:08:12

操作数不一定是一位数。


by 任铭泽2009 @ 2022-10-23 20:41:07

操作数有可能是多位数 可以写一个函数 int f(string s) { int summ=0; for(int i=0;i<s.size();i++) { summ*=10; summ+=s[i]-'0'; } return summ; }


|