Pagini recente » Cod sursa (job #3001809) | Cod sursa (job #1928547) | Cod sursa (job #1321778) | Cod sursa (job #283276) | Cod sursa (job #763422)
Cod sursa(job #763422)
#include <cstdio>
#define MAX 100001
char a[MAX],*b;
int eval();
int termen();
int factor(){
int n = 0;
if(*b=='(')
{
b++; //trecem peste (
n = eval();
b++; //trecem peste )
} else {
while('0'<=*b && *b<='9')
{
n = n*10 + *b - '0';
b++;
}
}
return n;
}
int termen(){
int r = factor();
while(*b=='*' || *b=='/')
{
if(*b=='*')
{
b++; // trecem peste *
r *= factor();
} else {
b++; //trecem peste /
r /= factor();
}
}
return r;
}
int eval(){
int r = termen();
while(*b=='+' || *b=='-')
{
if(*b=='+')
{
b++; // trecem peste +
r += termen();
} else {
b++; // trecem peste -
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;
}