Pagini recente » Cod sursa (job #47051) | Cod sursa (job #2368764) | Cod sursa (job #1081382) | Cod sursa (job #46466) | Cod sursa (job #147874)
Cod sursa(job #147874)
#include <stdio.h>
char exp[100001], *p=exp;
int evalExp();
int evalTerm();
int evalFact();
int evalExp(){
int t=evalTerm();
while(*p=='+' || *p=='-')
if(*p=='+') p++, t += evalTerm();
else p++, t -= evalTerm();
return t;
}
int evalTerm(){
int t=evalFact();
while(*p=='*' || *p=='/')
if(*p=='*') p++, t *= evalFact();
else p++, t /= evalFact();
return t;
}
int evalFact(){
int t;
if(*p=='('){
p++;
t = evalExp();
p++;
}
else{
t = 0;
while(*p>='0' && *p<='9') t = t*10 + *p-'0', p++;
}
return t;
}
int main(){
FILE *f=fopen("evaluare.in", "r");
FILE *g=fopen("evaluare.out", "w");
fscanf(f, "%s", exp);
fprintf(g, "%d\n", evalExp());
fclose(f);
fclose(g);
return 0;
}