Pagini recente » Cod sursa (job #1185274) | Cod sursa (job #2059386) | Cod sursa (job #1664595) | Cod sursa (job #468943) | Cod sursa (job #207121)
Cod sursa(job #207121)
#include <cstdio>
#define N 100001
char sir[N],*p;
long produs();
long termen();
long suma()
{long s=produs();
while(*p=='+'||*p=='-')
{if(*p=='+')
{p++;
s+=produs();}
else
{p++;
s-=produs();
}
}
return s;
}
long produs()
{long s=termen();
while(*p=='*'||*p=='/')
{if(*p=='*')
{p++;
s*=termen();
}
if(*p=='/')
{p++;
s/=termen();
}
}
return s;
}
long termen()
{long s=0;
if(*p=='(')
{p++;
s=suma();
p++;
return s;
}
while(*p>='0'&&*p<='9')
{s=s*10+*p-48;
p++;
}
return s;
}
int main ()
{FILE *fin=fopen("eval.in","r");
FILE *fout=fopen("eval.out","w");
fgets(sir,N,fin);
p=sir;
fprintf(fout,"%ld",suma());
fclose (fout);
return 0;
}