Cod sursa(job #2109889)

Utilizator Roby54151Robert Cojocariu Roby54151 Data 20 ianuarie 2018 11:09:11
Problema Evaluarea unei expresii Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100002];
int n, x=0;
int inmimp();
int paranteze();
int adunscad()
{
    int y=inmimp();
    while(s[x]=='+')
    {
        x++;
        y+=inmimp();
    }
    while(s[x]=='-')
    {
        x++;
        y-=inmimp();
    }
    return y;
}
int inmimp()
{
    int y=paranteze();
    while(s[x]=='*')
    {
        x++;
        y*=paranteze();
    }
    while(s[x]=='/')
    {
        x++;
        y/=paranteze();
    }
    return y;
}
int paranteze()
{
    int y=0;
    if(s[x]=='(')
        {
            x++;
            y=adunscad();
            x++;
        }
    else
        while(s[x]>='0' && s[x]<='9')
        {
            y=y*10+s[x]-48;
            x++;
        }
    return y;
}
int main()
{
    f.getline(s, 100002);
    n=strlen(s);
    g<<adunscad();
    return 0;
}