Pagini recente » Cod sursa (job #1969208) | Cod sursa (job #2474393) | Cod sursa (job #2780667) | Cod sursa (job #2459498) | Cod sursa (job #540278)
Cod sursa(job #540278)
#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==')')
{
++p;
r=eval ();
++p;
}
else
while(*p>='0' && *p<='9')
{
r=r*10+*p-'0';
++p;
}
return r;
}
int main ()
{
freopen("expresie.in","r",stdin);
freopen("expresie.out","w",stdout);
gets(c);
p=c;
printf("%ld\n", eval());
return 0;
}