Cod sursa(job #1849494)

Utilizator teodorgTeodor G teodorg Data 17 ianuarie 2017 16:59:31
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char e[100010],*c;
int suma(),produs(),factor(),numar();
int main()
{
    f>>e;
    c=e;
    g<<suma();
    return 0;
}
int suma()
{
    int rezultat=produs();
    while(*c=='+'||*c=='-')
    {
        if(*c=='+'){c++;rezultat+=produs();}
        else {c++;rezultat-=produs();}
    }
    return rezultat;
}
int produs()
{
    int rezultat=factor();
    while(*c=='*'||*c=='/')
    {
        if(*c=='*'){c++;rezultat*=factor();}
        else {c++;rezultat/=factor();}
    }
    return rezultat;
}
int factor()
{
    //paranteza sau numar
    int rezultat;
    if(*c=='(')
    {
        c++;rezultat = suma();c++;
    }
    else
        rezultat=numar();
    return rezultat;
}
int numar()
{
    int rezultat=0;
    while(*c>='0'&&*c<='9')
    {
        rezultat=10*rezultat+*c-'0';
        c++;
    }
    return rezultat;
}