Cod sursa(job #2501732)

Utilizator vlad.ichimVlad Ichim vlad.ichim Data 30 noiembrie 2019 10:01:51
Problema Evaluarea unei expresii Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <iostream>
#include <cstring>
using namespace std;
void citire(char s[10010])
{
    cin.getline(s,10010);
}
char j[10010],i=0;
int anamere();
int inmultire();
int rezolv()
{
    int p=inmultire();
    while (j[i]=='+' || j[i]=='-')
    {
        if (j[i]=='+')
        {
            i++;
            p+=inmultire();
        }
        else
        {
            i++;
            p-=inmultire();
        }
    }
    return p;
}
int inmultire()
{
    int p=anamere();
    while(j[i]=='*' || j[i]=='/')
    {
        if(j[i]=='*')
        {
            i++;
            p*=anamere();
        }
        else
        {
            i++;
            p/=anamere();
        }
    }
    return p;
}
int anamere()
{
    int p=0;
    if (j[i]=='('){
            i++;
            p=rezolv();
            i++;
        }
    else while (isdigit(j[i])) p=p*10+j[i++]-'0';
    return p;
}
int main()
{
    citire(j);
    cout<<rezolv();
    return 0;
}