Pagini recente » Cod sursa (job #2887822) | Cod sursa (job #879092) | Cod sursa (job #323776) | Cod sursa (job #1200903) | Cod sursa (job #540283)
Cod sursa(job #540283)
#include <stdio.h>
char c[100001],*p;
long termen ();
long factor ();
long eval ()
{
long r=termen ();
while(*p=='+' || *p=='-')
if(*p=='+')
{
++p;
r+=termen ();
}
else if(*p=='-')
{
++p;
r-=termen ();
}
return r;
}
long termen ()
{
long r=factor ();
while(*p=='*' || *p=='/')
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;
}