Pagini recente » Cod sursa (job #1168428) | Cod sursa (job #1336180) | Cod sursa (job #1720947) | Cod sursa (job #1228680) | Cod sursa (job #2811159)
#include <bits/stdc++.h>
using namespace std;
FILE *f=fopen("evaluare.in","r");
FILE *g=fopen("evaluare.out","w");
const int nmax=100005;
char s[nmax],*p=s;
long long int termen();
long long int factor();
long long int eval()
{
long long int r=termen();
while(*p=='+' || *p=='-')
switch(*p)
{
case '+':
++p;
r+=termen();
break;
case '-':
++p;
r-=termen();
break;
}
return r;
}
int main()
{
fgets(s,nmax,f);
fprintf(g,"%d ",eval());
}
long long int factor(){
long long int r=0;
if(*p=='('){
++p;
r=eval();
++p;
}else while(*p>='0' && *p<='9'){
r=r*10+*p-'0';
++p;
}
return r;
}
long long int termen()
{
long long r=factor();
while(*p=='*' || *p=='/')
switch(*p)
{
case '*':
++p;
r*=factor();
break;
case '/':
++p;
r/=factor();
break;
}
return r;
}