Cod sursa(job #1291723)

Utilizator Alex_SimionSimion Alexandru Alex_Simion Data 13 decembrie 2014 10:24:37
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <cstring>
#include <algorithm>
#define N 100010
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char E[N],*p;
int suma(),produs(),paranteza(),numar();
int main()
{
    p=E;
    f>>p;
    g<<suma();
    return 0;
}
int suma()
{
    int Suma=produs();
    while(*p=='-'||*p=='+')
    {
        if(*p=='-'){p++;Suma-=produs();}
        else {p++;Suma+=produs();}
    }
    return Suma;
}
int produs()
{
    int Produs=paranteza();
    while(*p=='*'||*p=='/')
    {
        if(*p=='*'){p++;Produs*=paranteza();}
        else {p++;Produs/=paranteza();}
    }
    return Produs;
}
int paranteza()
{
    if(*p>='0'&&*p<='9')
        return numar();
    p++;
    int Paranteza=suma();
    p++;
    return Paranteza;
}
int numar()
{
    int Numar=0;
    while(*p>='0'&&*p<='9')
    {
        Numar=Numar*10+*p-'0';
        p++;
    }

    return Numar;
}