Cod sursa(job #2866555)

Utilizator mati.coldea@gmail.comMatei Coldea [email protected] Data 9 martie 2022 19:49:59
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
string s;
int i=0;
int operatii();
int factori();
int evaluare();
int evaluare(){// + -
    int result=operatii();
    while(s[i]=='+' || s[i]=='-'){


        if(s[i]=='+'){
            i++;
            result+=operatii();
        }
        else{
            i++;
            result-=operatii();
        }

    }
    return result;

}

int operatii(){// * /
    int result=factori();

    while(s[i]=='*' || s[i]=='/'){

        if(s[i]=='*'){
            i++;
            result*=factori();
        }
        else{
            i++;
            result/=factori();
        }



    }
   return result;

}



int factori(){// ( )

    int result=0;
    if(s[i]=='('){
        i++;
        result=evaluare();
        i++;
    }
    else{

        while(isdigit(s[i])){

            result=result*10+(s[i]-'0');
        i++;
        }


    }

return result;

}
int main()
{

    fin>>s;
    fout << evaluare();
    return 0;
}