Cod sursa(job #2180549)

Utilizator CodrinsahCotarlan Codrin Codrinsah Data 20 martie 2018 22:30:29
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
using namespace std;
ifstream fi ("evaluare.in");
ofstream fo ("evaluare.out");
string sir;
int i;
bool cifra(int chr)
{
    if (chr>='0' and chr<='9') return 1;
    return 0;
}
int evaluare()
{
    int nr=0,p=1,sum=0;
    bool prod=false,divi=false;
    while (sir[i]!=')')
    {
        nr=0;
        if (cifra(sir[i]))
            while (cifra(sir[i]))
            {
                nr=nr*10+sir[i]-'0';
                i++;
            }
        else if (sir[i]=='(') {i++;nr=evaluare();}
        if (divi) {p=p/nr;divi=false;}
        else p=p*nr;
        if (sir[i]=='/') divi=true;
        if (sir[i]=='+' or sir[i]==')')
        {
            sum=sum+p;
            p=1;
        }
        if (sir[i]==')') {i++;return sum;}
        i++;
    }
    return sum;
}
int main()
{
    fi>>sir;
    sir.append(")");
    fo<<evaluare();
    return 0;
}