Pagini recente » Cod sursa (job #500524) | Cod sursa (job #391403) | Cod sursa (job #1833561) | Cod sursa (job #1451110) | Cod sursa (job #535378)
Cod sursa(job #535378)
#include<stdio.h>
FILE*f=fopen("evaluare.in","r");
FILE*g=fopen("evaluare.out","w");
char v[100000];
char *p=v;
long termen();
long factor();
long eval() {
long x=termen();
while(*p=='+'||*p=='-'){
if(*p=='+'){
++p;
x+=termen();
}else{
++p;
x-=termen();
}
}
return x;
}
long termen(){
long x=factor();
while(*p=='*'||*p=='/'){
if(*p=='*'){
++p;
x*=factor();
}else{
++p;
x/=factor();
}
}
return x;
}
long factor(){
long x=0;
if(*p=='('){
++p;
x=eval();
++p;
}else
while(*p>='0'&&*p<='9'){
x=x*10+*p-'0';
++p;
}
return x;
}
int main() {
fscanf(f,"%s",&v);
fprintf(g,"%ld",eval());
fclose(g);
fclose(f);
return 0;
}