Cod sursa(job #2857802)

Utilizator proflaurianPanaete Adrian proflaurian Data 26 februarie 2022 12:56:45
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
string s;
int poz,suma(),produs(),paranteza();
int main()
{
    f>>s;
    s=s+"#";
    g<<suma()<<'\n';
    return 0;
}
int suma()
{
    int rez=produs();
    while(s[poz]=='+'||s[poz]=='-')
    {
        if(s[poz]=='+'){poz++;rez+=produs();}
        else {poz++;rez-=produs();}
    }
    return rez;
}
int produs()
{
    int rez=paranteza();
    while(s[poz]=='*'||s[poz]=='/')
    {
        if(s[poz]=='*'){poz++;rez*=paranteza();}
        else {poz++;rez/=paranteza();}
    }
    return rez;
}
int paranteza()
{
    if(s[poz]=='(')
    {
        poz++;
        int rez=suma();
        poz++;
        return rez;
    }
    int rez=0;
    while(isdigit(s[poz]))
    {
        rez=10*rez+s[poz]-'0';
        poz++;
    }
    return rez;
}