Cod sursa(job #1456130)

Utilizator adina0822Ciubotaru Adina-Maria adina0822 Data 29 iunie 2015 20:58:38
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
using namespace std;
#include <fstream>
ifstream f ("evaluare.in");
ofstream g ("evaluare.out");
const long MAX=100010;
char S[MAX], *p=S;

long termen();
long factor();

long eval()
{
   long r=termen();
   while (*p=='+' || *p=='-')
   {
       if(*p=='+')
       {
           p++;
           r+=termen();
       }
       else
       {
           p++;
           r-=termen();
       }
   }

   return r;
}

long termen()
{
    long r=factor();

    while(*p=='*' || *p=='/')
    {
        if(*p=='*')
        {
            p++;
            r*=factor();
        }
        else
        {
            p++;
            r/=factor();
        }
    }
    return r;


}

long factor()
{
    long r=0;
    if(*p=='(')
    {
        p++;
        r=eval();
        p++;
    }
    else
    {
        while(*p>='0' && *p<='9')
        {
            r=r*10+(*p)-'0';
            p++;
        }
    }
    return r;
}

int main()
{
    f.get(S,MAX);
    g<<eval();
}