Cod sursa(job #2205053)

Utilizator OctavianVasileVasileOctavian OctavianVasile Data 17 mai 2018 19:31:24
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
using namespace std;
ifstream cin ("evaluare.in");
ofstream cout ("evaluare.out");
char v [100001];
int i;
int eval ();
int factori ();
int inmultire ();
int evaluare (){
    int nr = inmultire();
    while (v [i] == '+' || v [i] == '-'){
        if (v [i ++] == '+') nr += inmultire ();
        else nr -= inmultire ();
    }
    return nr;
}
int factori(void){
    int nr = 0;
    if ( v [i] == '('){
        i ++;
        nr = evaluare ();
        i ++;
    }
    else for (; v[i]>='0'&& v[i]<='9'; i++) nr = nr * 10 + (v [i] - '0');
    return nr;
}
int inmultire (){
    int nr = factori();
    while (v [i] == '*' || v [i] == '/'){
        if (v [i ++] == '*') nr *= factori();
        else nr /= factori ();
    }
    return nr;
}
int main()
{
    cin >> v;
    cout << evaluare ();
    return 0;
}