Pagini recente » Cod sursa (job #1440388) | Cod sursa (job #885492) | Cod sursa (job #2690737) | Cod sursa (job #2402580) | Cod sursa (job #157621)
Cod sursa(job #157621)
//Evaluare expresie
#include <cstdio>
char s[100001];
int i;
long termen();
long factor();
long eval(){
long r=termen();
while (s[i]=='+' || s[i]=='-')
if (s[i++]=='+') r+=termen();
else r-=termen();
return r;
}
long termen(){
long r=factor();
while (s[i]=='*' || s[i]=='/')
if (s[i++]='*') r*=factor();
else r/=factor();
return r;
}
long factor(){
long r=0;
if (s[i]=='(') {i++;
r=eval();
i++;}
else
while (s[i]>='0' && s[i]<='9') r=r*10+s[i++]-'0';
return r;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",s);
printf("%ld",eval());
fclose(stdout);
}