Pagini recente » Cod sursa (job #32315) | Cod sursa (job #191323) | Cod sursa (job #1399479) | Cod sursa (job #344491) | Cod sursa (job #156411)
Cod sursa(job #156411)
#include <stdio.h>
#include <ctype.h>
char s[100001];
int k;
int term(),eval();
int fact(){
int aux=0;
if(s[k]=='('){
k++;
aux=eval();
k++;
return aux;
}
while(isdigit(s[k]))
aux=aux*10+s[k++]-'0';
return aux;
}
int term(){
int aux=fact();
while(s[k]=='*' || s[k]=='/'){
if(s[k++]=='*')
aux*=fact();
else
aux/=fact();
}
return aux;
}
int eval(){
int aux=term();
while(s[k]=='+' || s[k]=='-'){
if(s[k++]=='+')
aux+=term();
else
aux-=term();
}
return aux;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
gets(s);
printf("%d\n",eval());
fclose(stdout);
return 0;
}