Pagini recente » oji2009112 | Cod sursa (job #3270849) | Cod sursa (job #1977380) | Cod sursa (job #174389) | Cod sursa (job #540280)
Cod sursa(job #540280)
#include <stdio.h>
char c[100001],*p;
long termen ();
long factor ();
long eval ()
{
long r=termen ();
if(*p=='+')
{
++p;
r+=termen ();
}
else if(*p=='-')
{
++p;
r-=termen ();
}
return r;
}
long termen ()
{
long r=factor ();
if(*p=='*')
{
++p;
r*=factor ();
}
else if(*p=='/')
{
++p;
r/=factor ();
}
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 ()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(c);
p=c;
printf("%ld\n", eval());
return 0;
}