Pagini recente » Cod sursa (job #59844) | Cod sursa (job #786068) | Cod sursa (job #2280456) | Cod sursa (job #1247508) | Cod sursa (job #256828)
Cod sursa(job #256828)
#include<algorithm>
using namespace std;
char s[100001],*p=s;
long termen();
long factor();
long eval(){
long r=termen();
while(*p=='+'||*p=='-')
switch(*p){
case '+':
++p;
r+=termen();
break;
case '-':
++p;
r-=termen();
break;}
return r;}
long termen(){
long r=factor();
while(*p=='*'||*p=='/')
switch(*p){
case '*':
++p;
r*=factor();
break;
case '/':
++p;
r/=factor();
break;}
return r;}
long factor(){
long r;
if(*p=='('){
++p;
r=eval();
++p;}
else
for(r=0; *p>='0'&&*p<='9'; r=r*10+*p-'0',++p);
return r;}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
printf("%ld",eval());
return 0;}