Cod sursa(job #1372419)

Utilizator bence21Bako Bence bence21 Data 4 martie 2015 13:22:32
Problema Evaluarea unei expresii Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.11 kb
#include<fstream>
#include<string.h>
using namespace std;
char s[100000];
long i,n,r,j=0;
int zarojel();
int szorzat();
int osszeg();
int main()
{
    ifstream f("evaluare.in");
    ofstream g("evaluare.out");
    f>>s;
    n=strlen(s);
    g<<osszeg();
    f.close();
    g.close();
    return 0;
}
int zarojel()
{
    int r=0;
    if(s[j]=='(')
    {
        j++;
        r=osszeg();
        j++;
    }
    else while(s[j]>='0'&&s[j]<='9')
    {
        r=r*10+s[j]-'0';
        j++;
    }
    return r;
}
int szorzat()
{
    int r;
    r=zarojel();
    while(s[j]=='*'||s[j]=='/')
    {
        if(s[j]=='*')
        {
            j++;
            r*=szorzat();
        }
        else if(s[j]=='/')
        {
            j++;
            r/=szorzat();
        }
    }
    return r;
}
int osszeg()
{
    int r;
    r=szorzat();
    while(s[j]=='+'||s[j]=='-')
    {
        if(s[j]=='+')
        {
            j++;
            r+=szorzat();
        }
        else if(s[j]=='-')
        {
            j++;
            r-=szorzat();
        }
    }
    return r;
}