Pagini recente » Cod sursa (job #1355373) | Cod sursa (job #1816391) | Cod sursa (job #1839530) | Cod sursa (job #174379) | Cod sursa (job #673328)
Cod sursa(job #673328)
#include<stdio.h>
char a[100010],*p;
int expresie();
int termen();
int factor();
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",a);
p=a;
printf("%d",expresie());
return 0;
}
int expresie(){
int rez=termen();
while(*p=='+'||*p=='-'){
if(*p=='+'){
p++;
rez+=termen();
}
else{
p++;
rez-=termen();
}
}
return rez;
}
int termen(){
int rez=factor();
while(*p=='*'||*p=='/'){
if(*p=='*'){
p++;
rez*=factor();
}
else{
p++;
rez/=factor();
}
}
return rez;
}
int factor(){
int rez=0;
if(*p=='('){
p++;
rez=expresie();
p++;
}
else{
while(*p>='0'&&*p<='9'){
rez=rez*10+(*p-'0');
p++;
}
}
return rez;
}