Cod sursa(job #2928011)

Utilizator Linca_AmaliaLinca Mihaela Amalia Linca_Amalia Data 21 octombrie 2022 23:51:08
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");

int i;
char v[100005];

int lowpr();
int midpr();
int highpr();

int lowpr(){
    int r = midpr();
    while( v[i] == '+' || v[i] == '-' ){
        if ( v[i] == '+' ){
            i++;
            r += midpr();
        }else{
            i++;
            r -= midpr();
        }
    }
    return r;
}

int midpr(){
    int r = highpr();
    while ( v[i] == '*' || v[i] == '/'){
        if ( v[i] == '*' ){
            i++;
            r *= highpr();
        }else{
            i++;
            r /= highpr();

        }
    }
    return r;

}

int highpr(){
    int r = 0;
    if ( v[i] == '(' ){
        i++;
        r = lowpr();
        i++;

    }else{
        r = 0;
        while ( v[i] >= '0' && v[i] <= '9' ){
            r = r * 10 + (v[i] - '0');
            i++;
        }
    }
    return r;
}
int main(){
    fin>>v;
    i = 0;
    fout << lowpr();
    return 0;
}