Pagini recente » Cod sursa (job #2258857) | Cod sursa (job #1587332) | Cod sursa (job #987987) | Cod sursa (job #746596) | Cod sursa (job #719664)
Cod sursa(job #719664)
#include<cstdio>
#define NMax 100005
using namespace std;
int i;
char sir[NMax];
int evalueaza ();
int factor ()
{
int nr=0;
if (sir[i]=='(')
{
i++;
nr=evalueaza();
i++;
}
else
while (sir[i]>='0' && sir[i]<='9')
{
nr=nr*10+sir[i]-'0';
i++;
}
return nr;
}
int termen ()
{
int rez=factor(),f2;
while (sir[i]=='*' || sir[i]=='/')
{
if (sir[i]=='*')
{
i++;
f2=factor();
rez*=f2;
}
else
{
i++;
f2=factor();
rez/=f2;
}
}
return rez;
}
int evalueaza ()
{
int rez=termen(),t2,sg;
while (sir[i]=='+' || sir[i]=='-')
{
if (sir[i]=='+') sg=1;
else sg=-1;
i++;
t2=termen()*sg;
rez+=t2;
}
return rez;
}
int main ()
{
freopen("evaluare.in","r",stdin);
freopen("evaluare.out","w",stdout);
scanf("%s",sir);
printf("%d",evalueaza());
return 0;
}