Cod sursa(job #1454521)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 26 iunie 2015 18:57:01
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#define Xp 100003
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char A[Xp],*a=A;
int op();
int opu();
int nr();
int val(int c)
{
    return c-'0';
}
int op()
{
    int r=opu();
    while(*a=='+'||*a=='-')
    {
        if(*a=='+') {++a; r+=opu(); }
            else {++a; r-=opu(); }
    }
    return r;
}
int opu()
{
    int r=nr();
    while(*a=='*'||*a=='/')
    {
        if(*a=='*') {++a; r*=nr(); }
            else {++a; r/=nr(); }
    }
    return r;
}
int nr()
{
    int r=0;
    if(*a=='(') { ++a; r=op(); ++a; }
        else while(*a >= '0' && *a <= '9') { r=r*10+val(*a); ++a;}
    return r;
}
int main()
{
    f>>A;
    g<<op();
    g.close();
    return 0;
}