Pagini recente » Cod sursa (job #862681) | Cod sursa (job #2090761) | Cod sursa (job #953801) | Cod sursa (job #2194704) | Cod sursa (job #826185)
Cod sursa(job #826185)
#include <cstdio>
#include <cstring>
#include <cctype>
#define MAXN 100005
char s[MAXN];
int cursor(0);
int eval();
int eval2();
int eval3();
int eval3(){
int nr(0);
if(s[cursor] == '('){
++cursor;
nr = eval();
++cursor;
}else{
while(isdigit(s[cursor])){
nr = nr * 10 + (s[cursor]-'0');
++cursor;
}
}
return nr;
}
int eval2(){
int nr=eval3();
while(s[cursor] == '*' || s[cursor] == '/'){
if(s[cursor] == '*'){
++cursor;
nr *= eval3();
}else{
++cursor;
nr /= eval3();
}
}
return nr;
}
int eval(){
int nr = eval2();
while(s[cursor] == '+' || s[cursor] == '-'){
if(s[cursor] == '+'){
++cursor;
nr += eval2();
}else{
++cursor;
nr -= eval2();
}
}
return nr;
}
int main (){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s", s);
printf("%d", eval());
}