Cod sursa(job #2055320)

Utilizator zsraduZamfir Radu zsradu Data 3 noiembrie 2017 01:07:50
Problema Evaluarea unei expresii Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char c[100003],*p=c;
long long termen();///produsul
long long numar();///un numar
long long suma()///suma tuturor
{
    long long r=termen();
    if(*p=='+')
    {
        p++;
        r+=termen();
    }
    else if(*p=='-')
    {
        p++;
        r-=termen();
    }
    return r;
}
long long termen()
{
    long long r=numar();
    if(*p=='*')
    {
        p++;
        r*=numar();
    }
    else if(*p=='/')
    {
        p++;
        r/=numar();
    }
    return r;
}
long long numar()
{
    int r=0;
    if(*p=='(')
    {
        p++;
        r=suma();
        p++;
    }
    else while(*p>='0' && *p<='9')
    {
        r=r*10+*p-'0';p++;
    }
    return r;
}
int main()
{
    f>>c;
    g<<suma();
}