Pagini recente » Cod sursa (job #553812) | Cod sursa (job #1148678) | Cod sursa (job #2967266) | Cod sursa (job #705660) | Cod sursa (job #183503)
Cod sursa(job #183503)
#include <stdio.h>
#include <ctype.h>
char s[100010],*p=s;
long eval();
long factor();
long termen();
long eval(){
long r;
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=0;
if(*p=='('){
p++;
r=eval();
p++;
}
else{
while(*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());
fclose(stdin);
fclose(stdout);
return 0;
}