Pagini recente » Cod sursa (job #2809152) | Cod sursa (job #3163873) | Cod sursa (job #2917296) | Cod sursa (job #2191499) | Cod sursa (job #540279)
Cod sursa(job #540279)
#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("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(c);
p=c;
printf("%ld\n", eval());
return 0;
}