Cod sursa(job #1044371)

Utilizator hevelebalazshevele balazs hevelebalazs Data 29 noiembrie 2013 18:22:16
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <stdio.h>
#define N 100000
char s[N+1];
int i=0;
int prod();
int nr();
int sum(){
    int r=prod();
    while(1){
        if(s[i]=='+') ++i,r+=prod();
        else if(s[i]=='-') ++i,r-=prod();
        else return r;
        }
    }
int prod(){
    int r=nr();
    while(1){
        if(s[i]=='*') ++i,r*=nr();
        else if(s[i]=='/') ++i,r/=nr();
        else return r;
        }
    }
int nr(){
    if(s[i]=='('){
       ++i;
       int r=sum();
       return ++i,r;
       }
    int r=0;
    while(s[i]>='0'&&s[i]<='9'){
        r*=10;
        r+=s[i]-'0';
        ++i;
        }
    return r;
    }
int main(){
    freopen("evaluare.in","r",stdin);
    freopen("evaluare.out","w",stdout);
    scanf("%s",s);
    printf("%i",sum());
    return 0;
    }