Pagini recente » Cod sursa (job #1136723) | Cod sursa (job #3258978) | Cod sursa (job #1104813) | Cod sursa (job #2518830) | Cod sursa (job #1412141)
#include<bits/stdc++.h>
#define Nmax 100005
using namespace std;
char sir[Nmax], *p = sir;
int element_1();
int element_2();
int Solve()
{
int r = element_1();
while(*p == '+' || *p == '-') {
if(*p == '+')
++ p,
r += element_1();
if(*p == '-')
++ p,
r += element_1();
}
return r;
}
int element_1()
{
int r = element_2();
while(*p == '*' || *p == '/') {
if(*p == '*')
++ p,
r *= element_2();
if(*p == '/')
++ p,
r /= element_2();
}
return r;
}
int element_2()
{
int nr = 0;
if(*p == '(') {
++ p;
nr = Solve();
++ p;
}
else
for( ; *p >= '0' && *p <= '9'; ++ p)
nr = nr * 10 + *p - '0';
return nr;
}
int main()
{
freopen("evaluare.in", "r", stdin);
gets(sir);
fprintf(fopen("evaluare.out", "w"), "%d", Solve());
return 0;
}