Cod sursa(job #815050)

Utilizator Al3ks1002Alex Cociorva Al3ks1002 Data 16 noiembrie 2012 15:58:13
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<cstdio>
using namespace std;
char s[100005],*c;
int E(),T(),F();
int main()
{
    freopen("evaluare.in","r",stdin);
    freopen("evaluare.out","w",stdout);
    scanf("%s",s);
    c=s;
    printf("%d",E());
    return 0;
}
int E()
{
    int rez=T();
    while(*c=='-' || *c=='+')
        {
           if(*c=='-') {c++;rez-=T();}
           else {c++;rez+=T();}
        }
    return rez;
}
int T()
{
    int rez=F();
    while(*c=='*' || *c=='/')
        {
           if(*c=='*') {c++;rez*=F();}
           else {c++;rez/=F();}
        }
    return rez;
}
int F()
{
    int rez=0;
    if(*c=='('){c++;rez=E();c++;return rez;}
    while(*c>='0'&&*c<='9'){rez=rez*10+*c-'0';c++;}
    return rez;
}