Cod sursa(job #2229834)

Utilizator cezarzbughinCezar Zbughin cezarzbughin Data 8 august 2018 11:13:21
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
const int N=100010;
char e[N],*p;
int suma(),produs(),paranteza(),numar();
int main()
{
    f>>e;
    p=e;
    g<<suma();
    return 0;
}
int suma()
{
    int ret=produs();
    while(strchr("+-",*p))
    {
        if(*p=='+'){p++;ret+=produs();}
        else{p++,ret-=produs();}
    }
    return ret;
}
int produs()
{
    int ret=paranteza();
    while(strchr("*/",*p))
    {
        if(*p=='*'){p++;ret*=paranteza();}
        else{p++,ret/=paranteza();}
    }
    return ret;
}
int paranteza()
{
    if(isdigit(*p))
        return numar();
    p++;
    int ret=suma();
    p++;
    return ret;
}
int numar()
{
    int ret=0;
    while(isdigit(*p))
    {
        ret=10*ret+*p-'0';
        p++;
    }
    return ret;
}