Pagini recente » Cod sursa (job #265265) | Cod sursa (job #1499588)
#include <stdio.h>
using namespace std;
char s[100001];
int p=0;
int E();
int F();
int T();
int E()
{
int raspuns=T();
while(s[p]=='+' || s[p]=='-')
{
if(s[p]=='-')
{
p++;
raspuns-=T();
}
else
{
p++;
raspuns+=T();
}
}
return raspuns;
}
int T()
{
int raspuns=F();
while(s[p]=='*' || s[p]=='/')
{
if(s[p]=='*')
{
p++;
raspuns*=F();
}
else
{
p++;
raspuns/=F();
}
}
return raspuns;
}
int F()
{
int raspuns=0;
if(s[p]=='(')
{
p++;
raspuns=E();
p++;
}
else
{
while(s[p]-'0'>=0 && s[p]-'0'<=9)
{
raspuns*=10;
raspuns+=s[p]-'0';
p++;
}
}
return raspuns;
}
int main()
{
FILE *fin,*fout;
fin=fopen("evaluare.in","r");
fout=fopen("evaluare.out","w");
fgets(s,10000,fin);
fprintf(fout,"%d",E());
return 0;
}