Pagini recente » Cod sursa (job #626049) | Cod sursa (job #2725019) | Cod sursa (job #2749987) | Cod sursa (job #3121669) | Cod sursa (job #602614)
Cod sursa(job #602614)
#include <cstdio>
#include <iostream>
#define N 100005
using namespace std;
char a[N];
int i;
int unu();
int doi();
int trei();
int unu()
{
int r = doi();
while (a[i] == '+' || a[i] == '-')
{
++i;
if (a[i-1] == '+')
r += doi();
else
r -= doi();
}
return r;
}
int doi()
{
int r = trei();
while (a[i] == '*' || a[i] == '/')
{
++i;
if (a[i-1] == '*')
r *= trei();
else
r /= trei();
}
return r;
}
int trei()
{
int r = 0;
if (a[i] == '(')
{
++i;
r = unu();
++i;
}
else
while (isdigit(a[i]))
{
r = r*10 + a[i]-'0';
++i;
}
return r;
}
int main()
{
freopen ("evaluare.in", "r", stdin);
freopen ("evaluare.out", "w", stdout);
fgets (a, N, stdin);
printf ("%d\n", unu());
return 0;
}