Pagini recente » Cod sursa (job #755108) | Cod sursa (job #2978411) | Cod sursa (job #2238793) | Cod sursa (job #231295) | Cod sursa (job #780563)
Cod sursa(job #780563)
#include <cstdio>
#define Max 100001
char a[Max],*b;
int eval();
int termen(){
int nr = 0;
if( *b == '(' )
{
b++;
nr = eval();
b++;
} else
while( '0' <= *b && *b <= '9' )
{
nr = nr * 10 + *b - '0';
b++;
}
return nr;
}
int factor(){
int r = termen();
while( *b == '*' || *b == '/' )
{
if( *b == '*' )
{
b++;
r *= termen();
} else
if( *b == '/' )
{
b++;
r /= termen();
}
}
return r;
}
int eval(){
int r = factor();
while( *b == '+' || *b == '-' )
{
if( *b == '+' )
{
b++;
r += factor();
} else
if( *b == '-' )
{
b++;
r -= factor();
}
}
return r;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s ",a);
b = a;
printf("%d\n",eval());
return 0;
}