Pagini recente » Cod sursa (job #3266565) | Cod sursa (job #2514652) | Cod sursa (job #3000532) | Cod sursa (job #3262017) | Cod sursa (job #206296)
Cod sursa(job #206296)
#include<stdio.h>
#include<string.h>
#define N 100005
char s[N],*p=s;
int termen();
int factor();
int expresie(){
int r=termen();
while(*p=='+' || *p=='-'){
if(*p=='+'){
++p;
r+=termen();
}
else{
++p;
r-=termen();
}
}
return r;
}
int termen(){
int r=factor();
while(*p=='*'||*p=='/'){
if(*p=='*'){
++p;
r*=factor();
}
else{
++p;
r/=factor();
}
}
return r;
}
int factor(){
int r=0;
if(*p=='('){
++p;
r=expresie();
++p;
}
else
while(*p!='\n' && *p>='0' && *p<='9'){
r=r*10+(*p-'0');
++p;
}
return r;
}
int main(){
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
fgets(p,N,stdin);
printf("%d\n",expresie());
fclose(stdin);
fclose(stdout);
return 0;
}