Cod sursa(job #627295)

Utilizator Luncasu_VictorVictor Luncasu Luncasu_Victor Data 29 octombrie 2011 16:04:37
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
char*s=new char[100001];
int termen();
int factor();

int eval(){
    int v=termen();
    while(*s=='+'||*s=='-'){
        if(*s=='+'){s++; v+=termen(); } else {s++; v-=termen(); } }
    return v;
}

int termen(){
    int v=factor();
    while(*s=='*'||*s=='/'){
        if(*s=='*'){s++; v*=factor(); } else {s++; v/=factor(); } }
    return v;
}

int factor(){
    int v=0;
    if(*s=='('){
        s++; v=eval(); s++; } else {
        while(*s>='0'&&*s<='9'){v=(v*10)+*s-'0';s++;}; }
    return v;
}

int main(){
    freopen("test.in","r",stdin);
    freopen("test.out","w",stdout);
        gets(s);
        printf("%d\n",eval());
}