Pagini recente » Cod sursa (job #2439425) | Cod sursa (job #200270)
Cod sursa(job #200270)
#include <stdio.h>
#define N 100002
char s[N];
int p=0;
int termen();
int factor();
int eval(){
int r=termen();
while(s[p]=='+' || s[p]=='-')
if(s[p]=='+'){
p++;
r+= termen();
}
else {
p++;
r-=termen();
}
return r;
}
int termen(){
int r=factor();
while(s[p]=='*' || s[p]=='/')
if(s[p]=='*'){
p++;
r*=factor();
}
else {
p++;
r/=factor();
}
return r;
}
int factor(){
int r=0;
if(s[p]=='('){
p++;
r=eval();
p++;
}
else while(s[p]>='0' && s[p]<='9'){
r=r*10+s[p]-'0';
p++;
}
return r;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",s);
printf("%d",eval());
}