Pagini recente » Cod sursa (job #103858) | Cod sursa (job #321311) | Cod sursa (job #1339795) | Cod sursa (job #31594) | Cod sursa (job #904832)
Cod sursa(job #904832)
#include <cstdio>
#include <cctype>
#include <cstring>
using namespace std;
char c[100005];
int i=0;
int eval1();
int eval2();
int eval3();
int eval3(){
int n=0;
if(c[i]=='('){
++i;
n=eval1();
++i;
}
while(isdigit(c[i])){
n=n*10+(c[i]-'0');
++i;
}
return n;
}
int eval2(){
int n=eval3();
while(c[i]=='*'||c[i]=='/'){
if(c[i]=='*'){
++i;
n*=eval3();
}
else{
++i;
n/=eval3();
}
}
return n;
}
int eval1(){
int n=eval2();
while(c[i]=='+'||c[i]=='-'){
if(c[i]=='+'){
++i;
n+=eval2();
}
else{
++i;
n-=eval2();
}
}
return n;
}
int main () {
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",c);
printf("%d",eval1());
return 0;
}