Pagini recente » Cod sursa (job #1711871) | Cod sursa (job #2479062) | Cod sursa (job #2177519) | Cod sursa (job #1582672) | Cod sursa (job #160117)
Cod sursa(job #160117)
#include<stdio.h>
#include<string.h>
int i,n,v,lg;
char c,e[100];
int EvalFactor();
int EvalTermen();
int EvalExpresie();
int main()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",&e);
lg=strlen(e);
i=0;
printf("%d",EvalExpresie());
return 0;
}
int EvalFactor()
{int f;
if (e[i]=='('){
f=EvalExpresie();
i++;
}
else{
f=e[i]-'0';
i++;
}
return f;
}
int EvalTermen()
{int r=EvalFactor();
while(i<lg && (e[i]=='*'|| e[i]=='/')){
i++;
if (e[i]=='*')
r*=EvalFactor();
else
r/=EvalFactor();
}
return r;
}
int EvalExpresie()
{int r=EvalTermen();
while(i<lg && (e[i]=='+'|| e[i]=='-')){
i++;
if (e[i]=='+')
r+=EvalTermen();
else
r-=EvalTermen();
}
return r;
}