Pagini recente » Cod sursa (job #1129637) | Cod sursa (job #299165) | Cod sursa (job #2641363) | Cod sursa (job #1523462) | Cod sursa (job #738639)
Cod sursa(job #738639)
#include<stdio.h>
const int dim=100005;
char expresie[dim]; char *c=expresie;
int factor();
int produs();
int eval(){
int r=produs();
while(*c=='+' || *c=='-'){
switch(*c){
case '+':
c++;
r+=produs();
break;
case '-':
c++;
r-=produs();
break;
}
}
return r;
}
int produs(){
int r=factor();
while(*c=='*' || *c=='/'){
switch(*c){
case '*':
c++;
r*=factor();
break;
case '/':
c++;
r/=factor();
break;
}
}
return r;
}
int factor(){
int r=0;
if(*c=='('){
c++;
r=eval();
c++;
}else{
while(*c>='0' && *c<='9'){
r=r*10+*c-'0';
*c++;
}
}
return r;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
fgets(expresie,dim,stdin);
printf("%d\n",eval());
return 0;
}