Pagini recente » Cod sursa (job #2166629) | Cod sursa (job #3299630) | Cod sursa (job #2380391) | Cod sursa (job #1666938) | Cod sursa (job #606098)
Cod sursa(job #606098)
#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;}