Pagini recente » Cod sursa (job #1514543) | Cod sursa (job #1060192) | Cod sursa (job #1478940) | Cod sursa (job #824318) | Cod sursa (job #266971)
Cod sursa(job #266971)
#include<stdio.h>
int p,i;
char v[100111];
int eval(),termen(),factor();
int eval(){
int a;
a = termen();
while( v[p] == '-' || v[p] == '+' ){
if(v[p] == '-'){
p++;
a-=termen();
}
else{
p++;
a+=termen();
}
}
return a;
}
int termen(){
int a;
a = factor();
while( v[p] == '*' || v[p] == '/' ){
if(v[p] == '/'){
p++;
a/=factor();
}
else{
p++;
a*=factor();
}
}
return a;
}
int factor(){
int a = 0;
if(v[p] == '('){
p++;
a = eval();
p++;
}
else{
for(;v[p] >= '0' && v[p] <= '9';p++)
a = a*10 + v[p] - '0';
}
return a;
}
int main(){
FILE *f = fopen("evaluare.in","r");
FILE *g = fopen("evaluare.out","w");
fscanf(f,"%s",v);
fprintf(g,"%d",eval());
fclose(f);
fclose(g);
return 0;
}