Pagini recente » Cod sursa (job #267863) | Cod sursa (job #463300) | Cod sursa (job #2927140) | Cod sursa (job #349124) | Cod sursa (job #1562050)
#include<cstdio>
using namespace std;
#define MAX 100001
char sir[MAX],*p=sir;
int termen(),factor();
int eval()
{int r=termen();
while(*p=='+'||*p=='-')
switch(*p)
{case '+':++p;
r+=termen();
break;
case'-':++p;
r-=termen();
break;
}
return r;
}
int termen()
{int r=factor();
while(*p=='*'||*p=='/')
switch(*p)
{case '*':++p;
r*=factor();
break;
case '/':++p;
r/=factor();
break;
}
return r;
}
int factor()
{int r=0;
if(*p=='(')
{++p;
r=eval();
++p;
}
else while(*p>='0'&&*p<='9')
{r=r*10+*p-'0';
++p;
}
return r;
}
int main()
{fgets(sir,100001,fopen("evaluare.in","r"));
fprintf(fopen("evaluare.out","w"),"%d",eval());
}