Cod sursa(job #2256323)

Utilizator iminbluePana Adrian iminblue Data 8 octombrie 2018 15:21:14
Problema Evaluarea unei expresii Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f ( "evaluare.in" ) ;
ofstream g ( "evaluare.out" ) ;
int factor();
int termen();
int expresie();

int n,i,l;
char s[250];

int termen()
{int t=factor();
while (i<l && (s[i]=='+' || s[i]=='-'))
{

    if (s[i]=='+') {i ++ ; t=t+factor();}
    if (s[i]=='-'){i ++ ; t=t-factor();}
}
    return t;
}

int expresie()
{
int t ;
if (s[i]=='(')
{
    i++;
    t=termen();
    i++;
}
else {t = 0;
    while (isdigit(s[i]))
    {
        t = t * 10 + (s[i] - '0');
        i ++ ;
    }

}
return t ;
}

int factor ()
{int t;
 t=expresie();
while (i<l && (s[i]=='*')||(s[i]=='/'))
    {

        if (s[i]=='*') {i ++ ; t=t*expresie();}
        else {i++ ; t=t/expresie();}

    }
 return t;
}

int main()
{f>>s;
l=strlen(s);
g<<termen();
    return 0;
}