Cod sursa(job #2024779)

Utilizator AndreeaAmzaAndreea Amza AndreeaAmza Data 21 septembrie 2017 10:58:27
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("evaluare.in");
ofstream g ("evaluare.out");
char s[100001],*p=s;
long evaluare();
long termen();
long numar();
long evaluare()
{
    long r;
    if(*p=='+' or *p=='-')
    {
        if(*p=='+') {*p++;
                    r=r+termen();
                    }
        else{*p++;
             r=r-termen();
        }
    }
    return r;
}
long termen()
{
    long r=numar();
    while(*p=='*' or *p=='/')
    {
        if(*p=='*') {*p++;
                     r=r*numar();
                     }
        else {*p++;
              r=r/numar();
              }
    }

}
long numar()
{
    long r=0;
    if(*p!='(')
        while(*p>='0' && *p<='9')
            {r=r*10+(*p-48);
             p++;
            }
    else {
         *p++;
         r=evaluare();
         *p++;
            }
    return r;
}
int main()
{
        f.getline(s,100001);
        g<<evaluare();
    return 0;
}