Cod sursa(job #1852946)

Utilizator mateisoroSorodoc Matei mateisoro Data 21 ianuarie 2017 11:58:05
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char E[100010];
int poz,suma(),produs(),factor();
int main()
{
    f>>E;
    g<<suma();
    return 0;
}
int suma()
{
    int r=produs();
    while(E[poz]=='+'||E[poz]=='-')
        if(E[poz]=='+')poz++,r+=produs();
        else poz++,r-=produs();
    return r;
}
int produs()
{
    int r=factor();
    while(E[poz]=='*'||E[poz]=='/')
        if(E[poz]=='*')poz++,r*=factor();
        else poz++,r/=factor();
    return r;
}
int factor()
{
    int r=0;
    if(isdigit(E[poz]))
    {
        while(isdigit(E[poz]))
        {
            r=10*r+E[poz]-'0';
            poz++;
        }
        return r;
    }
    poz++;r=suma();poz++;
    return r;
}