Cod sursa(job #1210817)

Utilizator Dorian7Casapu Dorian Dorian7 Data 21 iulie 2014 11:37:09
Problema Evaluarea unei expresii Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb

#include<fstream>
#include<string.h>
#include<cstdio>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
const long MAX=100010;
char S[MAX],*p=S;
long termen();
long factor();
long eval()
{long r=termen();
while(*p=='+'||*p=='-')
switch (*p)
{case '+':
p++;
r=r+termen();
break;
case '-':
p++;
r=r-termen();
break;

}
 return r;
}
long termen()
{long r=factor();
while(*p=='*'||*p=='/')
switch(*p)
{case '*':
p++;
r=r*factor();
    break;
    case '/':
    p++;
    r=r/factor();
    break;
}
return r;
}
long factor()
{long r=0;
if(*p=='(')
   {p++;
       r=eval();
   p++;
   }
   else
   while(*p>='0'&&*p<='9')
   {r=r*10+*p-'0';
   p++;
   }
   return r;
}
int main()
{f.get(S,MAX);
    g<<eval();
}