Cod sursa(job #2156808)

Utilizator LuizaPatroescuPatroescu Luiza LuizaPatroescu Data 9 martie 2018 00:19:39
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>

using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");

int expresie();
int termen();
int factor();

char s[100005], *p;

int main()
{
    fin >> s;
    p = s;
    fout << expresie() << '\n';
    return 0;
}

int factor()
{

 int rez;
 if(*p=='(')
    {

        p++;
        expresie();
        p++;
    }
    else
    {

        rez=0;
        while(*p>='0' && *p <='9')
        {

            rez=rez*10+*p-'0';

        }

    }
    return rez;
}

int termen()
{

   rez=factor();
   while(*p=='*' || *p=='/')
   {

       if(*p=='*')
       {

           p++;
           rez*=factor();


       }
       if(*p=='/')
       {
           p++;
           rez/=factor();
       }
   }
    return rez;
}
int expresie()
{

 int rez=termen();
 while(*p=='+'|| *p=='-')
 {

     if(*p=='+')
     {
         p++;
         rez+=termen();
     }
     if(*p=='-')
     {
         p++;
         rez-=termen();
     }
 }

    return rez;
}