Cod sursa(job #2029231)

Utilizator EricEric Vilcu Eric Data 29 septembrie 2017 18:38:46
Problema Evaluarea unei expresii Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
long i;
char a[100001];
long adun();
long nr()
{
    int n=0;
    if(a[i]=='(')
    {++i;n=adun();++i;return n;}
    while(a[i]>'0'){n=n*10+a[i]-'0';++i;}
    return n;
}
long inmu()
{
    int p=nr();
    while (a[i]=='/' || a[i]=='*'){
        if(a[i]=='/') p/=nr();
        else p*=nr();++i;
    }
    return p;
}
long adun()
{
    int s=inmu();
    while (a[i]=='-'||a[i]=='+'){
        if(a[i]=='-')s-=inmu();
        else s+=inmu();++i;
    }
    return s;
}
int main()
{
    f>>a;
    g<<adun();
}