Pagini recente » Cod sursa (job #2741206) | Istoria paginii runda/lot2006z3/clasament | Cod sursa (job #744139) | Cod sursa (job #693991) | Cod sursa (job #1218727)
#include <cstdio>
using namespace std;
char c[100005],*p;
int factor( void );
int temen( void );
int eval( void );
int factor( void )
{
int x = 0;
if(*p == '(')
{
++p;
x = eval();
++p;
}
else
while('0' <= *p && *p <= '9')
{
x = x * 10 + *p - 48;
++p;
}
return x;
}
int termen()
{
int x = 0;
x = factor();
while(*p == '*' || *p == '/')
{
if(*p == '*')
++p,x *= factor();
else
++p,x /= factor();
}
return x;
}
int eval( void )
{
int x = 0;
x = termen();
while(*p == '+' || *p == '-')
{
if(*p == '+')
++p,x += termen();
else
++p,x -= termen();
}
return x;
}
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",c+1);
c[0] = '#';
p = c + 1;
printf("%d\n",eval());
return 0;
}