Cod sursa(job #2417212)

Utilizator sichetpaulSichet Paul sichetpaul Data 29 aprilie 2019 11:03:54
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <bits/stdc++.h>
#define DIM 100005
using namespace std;
char s[DIM];
int i;
int expresie();
int factor() {
   int ret=0;
   if (s[i]=='(') {
        ++i;
        ret=expresie();
        ++i;
        return ret;
    }

    while (s[i]>='0' && s[i]<='9')
        ret=ret*10+s[i]-'0',++i;
    return ret;
}
int termen() {
   int ret=factor();
   while (s[i]=='*' || s[i]=='/') {
        if (s[i]=='*') ++i,ret*=factor();
        else ++i,ret/=factor();
   }
     return ret;
}
int expresie() {
    int ret=termen();
    while (s[i]=='+' || s[i]=='-') {
        if (s[i]=='+') ++i,ret+=termen();
        else ++i,ret-=termen();
    }

    return ret;
}
int main()
{
    ifstream f("evaluare.in");
    ofstream g("evaluare.out");
    f.get(s,DIM);
    g<<expresie()<<'\n';

    return 0;
}