Pagini recente » Cod sursa (job #558141) | Cod sursa (job #313011) | Cod sursa (job #1810953) | Cod sursa (job #759776) | Cod sursa (job #567516)
Cod sursa(job #567516)
#include <cstdio>
#include <cstring>
using namespace std;
const int M=100005;
char a[M];
int sir[M], n, m, i;
int ord2();
int ord1();
int num();
int ord1()
{
int rez=ord2();
while (a[i]=='+' || a[i]=='-')
{
if (a[i]=='+')
{
++i;
rez+=ord2();
}
else
{
++i;
rez-=ord2();
}
}
return rez;
}
int ord2()
{
int rez=num();
while (a[i]=='*' || a[i]=='/')
{
if (a[i]=='*')
{
++i;
rez*=num();
}
else
{
++i;
rez/=num();
}
}
return rez;
}
int num()
{
int rez=0;
if (a[i]=='(')
{
++i;
rez=ord1();
++i;
}
else
while (a[i]>='0' && a[i]<='9')
{
rez=rez*10+a[i]-'0';
++i;
}
return rez;
}
int main()
{
freopen ("evaluare.in","r",stdin);
freopen ("evaluare.out","w",stdout);
fgets(a,M,stdin);
a[strlen(a)-1]=0;
n=strlen(a);
printf ("%d\n",ord1());
return 0;
}