Cod sursa(job #1231648)

Utilizator cojocarugabiReality cojocarugabi Data 21 septembrie 2014 11:41:41
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
# include <bits/stdc++.h>
using namespace std;
ifstream fi("evaluare.in");
ofstream fo("evaluare.out");
char s[100005];
int i=0;
int check();
int termen()
{
    int aux=0;
    if (s[i]=='(') ++i,aux=check(),++i;
    else
    while ('0'<=s[i] && s[i]<='9') aux=aux*10+s[i]-'0',++i;
    return aux;
}
int factor()
{
    int aux=termen();
    while (s[i]=='*' || s[i]=='/')
    if (s[i]=='*') ++i,aux*=termen();
    else ++i,aux/=termen();
    return aux;
}
int check()
{
    int aux=factor();
    while (s[i]=='+' || s[i]=='-')
    if (s[i]=='+') ++i,aux+=factor();
    else ++i,aux-=factor();
    return aux;
}
int main(void)
{
    fi>>s;
    fo<<check()<<'\n';
    return 0;
}