Pagini recente » Cod sursa (job #3226746) | Cod sursa (job #2743140) | Cod sursa (job #358749) | Cod sursa (job #309436) | Cod sursa (job #532058)
Cod sursa(job #532058)
#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;
}