Cod sursa(job #1950569)

Utilizator ticozaurStratila Andrei ticozaur Data 3 aprilie 2017 10:05:52
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char *p,c[100001];
int evaluare1();
int evaluare3()
{
    int rez=0;
    if(*p=='(')
    {
        p++;
        rez=evaluare1();
        p++;
    }
    else while(*p>='0' && *p<='9')
        {
            rez=rez*10+(*p-'0');
            p++;
        }
    return rez;
}
int evaluare2()
{
    int rez=evaluare3();
    while(*p=='*' || *p=='/')
    {
        if(*p=='*')
        {
            p++;
            rez*=evaluare3();
        }
        else
        {
            p++;
            rez/=evaluare3();
        }
    }
    return rez;
}
int evaluare1()
{
    int rez=evaluare2();
    while(*p=='+' || *p=='-')
    {
        if(*p=='+')
        {
            p++;
            rez+=evaluare2();
        }
        else
        {
            p++;
            rez-=evaluare2();
        }
    }
    return rez;
}
int main()
{
    fin>>c;
    p=c;
    fout<<evaluare1();
    return 0;
}