Cod sursa(job #2261258)

Utilizator BogdanGhGhinea Bogdan BogdanGh Data 16 octombrie 2018 10:04:44
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#include <cstring>
using namespace std;
char a[100001],*p;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int eval();
int factor();
int termen();
int eval()
{
    int r=termen();
    while(*p=='+'||*p=='-')
    {
        if(*p=='+'){p++;r+=termen();}
        else {p++;r-=termen();}
    }
    return r;
}
int termen()
{
    int r=factor();
    while(*p=='*'||*p=='/')
    {
        if(*p=='*'){p++;r*=factor();}
        else {p++;r/=factor();}
    }
    return r;
}
int factor()
{
    int 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.getline(a,100001);
     p=a;
     g<<eval();
    return 0;
}