Pagini recente » Cod sursa (job #978298) | Cod sursa (job #1865154) | Cod sursa (job #2281228) | Cod sursa (job #1476104) | Cod sursa (job #697512)
Cod sursa(job #697512)
#include<stdio.h>
char s[100000];
int i=0;
int eval();
int termen();
int factor();
int eval() {
int r=termen();
while(s[i]=='+' || s[i]=='-')
if(s[i]=='+') {
i++;
r+=termen();
}
else {
i++;
r-=termen();
}
return r;
}
int termen(){
int r=factor();
while(s[i]=='*' || s[i]=='/')
if(s[i]=='*') {
i++;
r*=factor();
}
else {
i++;
r/=factor();
}
return r;
}
int factor() {
int r=0;
if(s[i]=='(') {
i++;
r=eval();
i++;
return r;
}
while(s[i]>='0' && s[i]<='9') {
r=r*10+s[i]-'0';
i++;
}
return r;
}
int main() {
freopen("evaluare.in", "r", stdin);
freopen("evaluare.out", "w", stdout);
scanf("%s", s);
printf("%d\n", eval());
return 0;
}