Pagini recente » Cod sursa (job #1203187) | Cod sursa (job #2608400) | Borderou de evaluare (job #2969968) | Cod sursa (job #581200) | Cod sursa (job #380663)
Cod sursa(job #380663)
#include<stdio.h>
#define DIM 100002
char s[DIM],*p;
int expresie();
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;
}