Cod sursa(job #2378229)

Utilizator ZheroAlexandru Culea Zhero Data 11 martie 2019 21:23:45
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>
using namespace std;
#define LMAX 100001
char Exp[LMAX],*p;

int Evaluare();

int Nr()
{
    int Val=0;
    if(*p=='(')
    {
        p++;
        Val=Evaluare();
        p++;
    }
    else
        while(*p>='0' && *p<='9')
        {
            Val=Val*10 + (*p-'0');
            p++;
        }
    return Val;
}
int Or2()
{
    int Val=Nr();
    while(*p=='/' || *p=='*')
        if(*p=='/')
        {
            p++;
            Val/=Nr();
        }
        else
        {
            p++;
            Val*=Nr();
        }
    return Val;
}
int Evaluare()
{
    int Val=Or2();
    while(*p=='+' || *p=='-')
        if(*p=='+')
        {
            p++;
            Val+=Or2();
        }
        else
        {
            p++;
            Val-=Or2();
        }
    return Val;
}
int main()
{
    ifstream f("evaluare.in");
    f.get(Exp,LMAX);
    f.close();
    ofstream g("evaluare.out");
    p = Exp;
    g<<Evaluare();
    return 0;
}