Cod sursa(job #1088185)

Utilizator WMihaiVasile Vlad Mihai WMihai Data 20 ianuarie 2014 11:45:08
Problema Evaluarea unei expresii Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[1000],*p;
int y;
int multA();
int multB();
int multC();
int main()
{
    f.getline(s,1000);
    p=s;
    y=multA();
    g<<y;
    return 0;
}

int multA()
{
    int x;
    x=multB();
    while(*p=='-' || *p=='+')
        if(*p=='+')
        {
            p++;
            x+=multB();
        }
        else
        {
            p++;
            x-=multB();
        }
    return x;
}

int multB()
{
    int x;
    x=multC();
    while(*p=='*' || *p=='/')
        if(*p=='*')
        {
            p++;
            x*=multC();
        }
        else
        {
            p++;
            x/=multC();
        }
    return x;
}

int multC()
{
    int x=0;
    if(*p=='(')
    {
        p++;
        x=multA();
        p++;
    }
    else while('0'<=*p && *p<='9')
        {
            x*=10;
            x+=*p-'0';
            p++;
        }
        return x;
}