Cod sursa(job #2931606)

Utilizator ShadowZoidPorojan Victor-Andrei ShadowZoid Data 31 octombrie 2022 17:06:35
Problema Evaluarea unei expresii Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
using namespace std;
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
int n,i,nr;
char s[100005];
int ad();
int inm();
int numar()
{
    if(s[i]=='(')
    {
        i++;
        nr=ad();
        i++;
    }
    else
    {
        nr=0;
        while(s[i]>='0'&&s[i]<='9')
        {
            nr=nr*10+s[i]-'0';
            i++;
        }
    }
    return nr;
}
int inm()
{
    int nr=numar();
    while(s[i]=='*'||s[i]=='/')
        if(s[i]=='*')
    {
        i++;
        nr=nr*numar();
    }
    else
    {
        i++;
        nr=nr/numar();
    }
    return nr;
}
int ad()
{
    int nr=inm();
    while(s[i]=='+'||s[i]=='-')
        if(s[i]=='+')
    {
        i++;
        nr=nr+inm();
    }
    else
        if(s[i]=='-')
    {
        i++;
        nr=nr-inm();
    }
    return nr;
}
int main()
{
    cin.getline(s,100005);
    cout<<ad();
    return 0;
}