Pagini recente » Cod sursa (job #2104954) | Cod sursa (job #1605531) | Cod sursa (job #1630559) | Cod sursa (job #2173949) | Cod sursa (job #1820052)
#include<cstdio>
char s[100002];
int poz=0;
int expresie();
int termen();
int factor();
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",&s);
printf("%d",expresie());
return 0;
}
int expresie(){
int ans=termen();
while(s[poz]=='+'||s[poz]=='-'){
poz++;
if(s[poz-1]=='+')
ans+=termen();
else
ans-=termen();
}
return ans;
}
int termen(){
int ans=factor();
while(s[poz]=='*'||s[poz]=='/'){
poz++;
if(s[poz-1]=='*')
ans*=factor();
else
ans/=factor();
}
return ans;
}
int factor(){
int ans=0;
if(s[poz]=='('){
poz++;
ans=expresie();
poz++;
}else{
while(s[poz]>='0'&&s[poz]<='9')
ans=ans*10+s[poz++]-'0';
}
return ans;
}