Pagini recente » Cod sursa (job #1093774) | Cod sursa (job #2065658) | Cod sursa (job #2211618) | Cod sursa (job #2108354) | Cod sursa (job #1747945)
#include <stdio.h>
#include <string.h>
char s[100009],*p ;
long ter();
long fact();
long evaluare()
{
long rez=ter();
while (*p=='+' || *p=='-')
{
if (*p=='+')
p++,rez+=ter(); else
if (*p=='-')
p++,rez-=ter();
}
return rez;
}
long ter()
{
long rez=fact();
while (*p=='*' || *p=='/')
{
if (*p=='*')
p++,rez*=fact(); else
if (*p=='/')
p++,rez/=fact();
}
return rez;
}
long fact()
{
long rez=0;
if (*p<=57 && *p>=48)
{
while (*p<=57 && *p>=48)
rez=rez*10+*p-48,++p;
return rez;
}
++p;
rez=evaluare();
++p;
return rez;
}
int main()
{
FILE * in = fopen("evaluare.in","r");
FILE * out = fopen("evaluare.out","w");
fgets(s,100009,in);
p=&s[0];
fprintf(out,"%d",evaluare());
fclose(in);
fclose(out);
return 0;
}