Cod sursa(job #160117)

Utilizator runnaway90Oprescu Radu Constantin runnaway90 Data 14 martie 2008 19:08:16
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<stdio.h>
#include<string.h>

int i,n,v,lg;
char c,e[100];

int EvalFactor();
int EvalTermen();
int EvalExpresie();

int main()
{
    freopen("evaluare.in","r",stdin);
    freopen("evaluare.out","w",stdout);
    scanf("%s",&e);
    
    lg=strlen(e);
    i=0;
    printf("%d",EvalExpresie());
    return 0;
}


int EvalFactor()
{int f;
     if (e[i]=='('){
                  f=EvalExpresie();
                  i++;
     }
     else{
         f=e[i]-'0';
         i++;
     }
     return f;
}

int EvalTermen()
{int r=EvalFactor();
     while(i<lg && (e[i]=='*'|| e[i]=='/')){
                i++;
                if (e[i]=='*')
                   r*=EvalFactor();    
                else
                    r/=EvalFactor();
     }
     return r;
}

int EvalExpresie()
{int r=EvalTermen();
    while(i<lg && (e[i]=='+'|| e[i]=='-')){
          i++;
          if (e[i]=='+')
             r+=EvalTermen();
          else         
                       r-=EvalTermen();
    }
    return r;
}