Cod sursa(job #2814215)

Utilizator clara123Ghira Clara clara123 Data 7 decembrie 2021 19:16:32
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
using namespace std;
ifstream fin ("evaluare.in");
ofstream fout("evaluare.out");
int pm();
int pM();
int p();
int i;
char v[100010];

int pm() {
    int x=pM();
    while(v[i]=='+' || v[i]=='-'){
        if(v[i]=='+'){
            i++;
            x+=pM();
        }
        else{
            i++;
            x-=pM();
        }
    }
    return x;
}
int pM(){
    int x=p();
    while(v[i]=='*' || v[i]=='/'){
        if(v[i]=='*'){
            i++;
            x*=p();
        }
        else{
            i++;
            x/=p();
        }
    }
    return x;
}
 int p(){
    int x=0;
    if(v[i]=='('){
        i++;
        x=pm();
        i++;
    }
    else{
        x=0;
        while(v[i]>='0' && v[i]<='9'){
            x=x*10+(v[i]-'0');
            i++;
        }
    }
    return x;
}

int main(){
    fin>>v;
    i=0;
    fout<<pm();

    return 0;
}