Cod sursa(job #1211716)

Utilizator tdr_drtTdr Drt tdr_drt Data 23 iulie 2014 10:24:43
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
#include<algorithm>
using namespace std;

int i,check();
char s[100005];

int factor() {
  int aux=0;
  if(s[i]=='(') ++i,aux=check(),++i;
  else while(s[i]>='0' && s[i]<='9')
       aux*=10,aux+=s[i]-'0',++i;
 return aux;
}

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

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

int main()
{
  ifstream cin("evaluare.in");
  ofstream cout("evaluare.out");

  cin>>s;
  cout<<check()<<'\n';

 return 0;
}