Cod sursa(job #1850603)

Utilizator proflaurianPanaete Adrian proflaurian Data 18 ianuarie 2017 19:38:06
Problema Evaluarea unei expresii Scor 100
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");
int E(),T(),F(),N();char c;
int main()
{
    g<<E();
    return 0;
}
int E()
{
    f>>c;
    int R=T();
    while(c=='+'||c=='-')
        if(c=='+')
        {
            f>>c;
            R+=T();
        }
        else
        {
            f>>c;
            R-=T();
        }
    return R;
}
int T()
{
    int R=F();
    while(c=='*'||c=='/')
        if(c=='*')
        {
            f>>c;
            R*=F();
        }
        else
        {
            f>>c;
            R/=F();
        }
    return R;
}
int F()
{
    if(isdigit(c))
    return N();
    int R=E();
    f>>c;
    return R;
}
int N()
{
    int R=0;
    while(isdigit(c))
    {
        R=10*R+c-'0';
        if(!(f>>c))c=0;;
    }
    return R;
}