Cod sursa(job #606098)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 3 august 2011 13:15:07
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream.h>
#define N 100001
char *s;
long e(char *&p)
{long t(char*&);
char c;
long w,r=t(p);
if(!(*p))
      return r;
while((c=*p)=='+'||c=='-')
      {w=t(++p);
      if(c=='+')
            r+=w;
      else
            r-=w;}
return r;}
long t(char *&p)
{long f(char *&);
char c;
long w,r=f(p);
if(!(*p))
      return r;
while((c=*p)=='*'||c=='/')
      {w=f(++p);
      if(c=='*')
            r*=w;
      else
            r/=w;}
return r;}
long f(char *&p)
{long r;
if(*p=='(')
      {r=e(++p),p++;
      return r;}
else
      return (long)strtod(p,&p);}
int main()
{ifstream h("evaluare.in");
ofstream g("evaluare.out");
s=(char*)malloc(N*sizeof(char));
h>>s;
g<<e(s);
return 0;}