Pagini recente » Cod sursa (job #2889576) | Cod sursa (job #472834) | Cod sursa (job #2654222) | Cod sursa (job #3237833) | Cod sursa (job #380573)
Cod sursa(job #380573)
#include <stdio.h>
#define DIM 100002
char s[DIM];
char *p;
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 >= '0' && *p <= '9') {
r = r * 10 + *p-48;
p++;
}
}
return r;
}
int main(){
FILE *f = fopen("evaluare.in","r");
fgets(s, DIM, f);
fclose(f);
p = s;
FILE *g = fopen("evaluare.out","w");
fprintf(g,"%d",expresie());
fclose(g);
return 0;
}