Cod sursa(job #1511041)

Utilizator vasica38Vasile Catana vasica38 Data 25 octombrie 2015 22:42:47
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<string>
#include<fstream>
using namespace std;

ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
char s[100234];
int i,check();
int factor()
{
    int val=0;
    if (s[i]=='(') {++i; val=check(); ++i;}
        else
            while (s[i]>='0' && s[i]<='9') val=val*10+s[i++]-'0';
    return val;
}


int termen()
{
    int val=factor();
    while (s[i]=='*' || s[i]=='/')
    if (s[i]=='*') {++i; val*=factor();}
                else {++i; val/=factor();}
    return val;
}


int check()
{
    int val=termen();
    while (s[i]=='+' || s[i]=='-')
    if (s[i]=='+') {++i; val+=termen();}
                else {++i; val-=termen();}
    return val;
}

int main()
{
    cin>>s;
    cout<<check()<<"\n";
    return 0;
}