Pagini recente » Cod sursa (job #2003131) | Cod sursa (job #608907) | Cod sursa (job #628239) | Cod sursa (job #2957785) | Cod sursa (job #1098241)
#include <cstdio>
#define Lmax 100010
int Eval();
int Termen();
int Factor();
char S[Lmax], *p = S;
int Eval()
{
int r = Termen();
while (*p == '+' || *p == '-')
{
if (*p == '+')
{
p++;
r += Termen();
}
else if (*p == '-')
{
p++;
r -= Termen();
}
}
return r;
}
int Termen()
{
int r = Factor();
while (*p == '*' || *p == '/')
{
if (*p == '*')
{
p++;
r *= Factor();
}
else if (*p == '/')
{
p++;
r /= Factor();
}
}
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;
}
int main()
{
int Sol;
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
scanf("%s", S);
Sol = Eval();
printf("%d", Sol);
return 0;
}