Cod sursa(job #1288305)

Utilizator AnnaBiroBiro Anna AnnaBiro Data 8 decembrie 2014 18:59:18
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include <fstream>

using namespace std;

ifstream f("evaluare.in");

ofstream g("evaluare.out");
char s[100001];
int i=0;
int pluss();

int inm();

int paranteze();

int nr();

int paranteze()
{
    int r=0;
    if(s[i]=='(')
    {
        i++;
        r=pluss();
        i++;

    }
    else
    {
        r=nr();
    }
    return r;
}

int nr()
{   int r=0;
    while(isdigit(s[i]))
    {
        r=s[i]-'0'+r*10;
        i++;
    }
    return r;
}

int pluss()
{
    int r=inm();
    while(s[i]=='+'||s[i]=='-')
    {
        if(s[i]=='+')
        {
            i++;
            r+=inm();
        }
        else
        {
            i++;
            r-=inm();
        }
    }
    return r;


}

int inm()
{
     int r=paranteze();
     while(s[i]=='*'||s[i]=='/')
     {
         if(s[i]=='*')
         {
             i++;
             r*=paranteze();
         }
         else
         {
             i++;
             r/=paranteze();
         }
     }
     return r;
}



int main()
{
    f.get(s,100001);
    g<<pluss();
    return 0;
}