Pagini recente » Cod sursa (job #2596916) | Cod sursa (job #2631332) | Cod sursa (job #1706072) | Cod sursa (job #2142029) | Cod sursa (job #766932)
Cod sursa(job #766932)
#include <cstdio>
#define MAX 100001
char a[MAX],*b;
int eval();
int factor(){
int r = 0;
if( *b == '(' )
{
b++;
r = eval();
b++;
} else {
while( *b >= '0' && *b <= '9' )
{
r = r * 10 + *b - '0';
b++;
}
}
return r;
}
int termen(){
int r = factor();
while( *b == '*' || *b == '/' )
{
if( *b == '*' )
{
b++;
r *= factor();
} else {
b++;
r /= factor();
}
}
return r;
}
int eval(){
int r = termen();
while( *b == '+' || *b == '-' )
{
if( *b == '+' )
{
b++;
r += termen();
} else {
b++;
r -= termen();
}
}
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;
}