Pagini recente » Cod sursa (job #195960) | Cod sursa (job #2434922) | Cod sursa (job #2305962) | Cod sursa (job #2408163) | Cod sursa (job #255878)
Cod sursa(job #255878)
#include <stdio.h>
#define DIM 100005
char a[DIM],*p=a;
int eval ();
int termen ();
int factor ();
int main ()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
fgets (a,DIM,stdin);
printf ("%d",eval ());
return 0;
}
int eval ()
{
int r;
r=termen ();
while (*p=='+' || *p=='-')
{
if (*p=='+')
{
++p;
r+=termen ();
}
else
{
++p;
r-=termen ();
}
}
return r;
}
int termen ()
{
int r;
r=factor ();
while (*p=='*' || *p=='/')
{
if (*p=='*')
{
++p;
r*=termen ();
}
else
{
++p;
r/=termen ();
}
}
return r;
}
int factor ()
{
int r=0;
if (*p=='(')
{
++p;
r=eval ();
++p;
}
else
while (*p>='0' && *p<='9')
{
r=r*10+*p-'0';
++p;
}
return r;
}