Pagini recente » Cod sursa (job #408381) | Cod sursa (job #2724067) | Cod sursa (job #2115738) | Cod sursa (job #284410) | Cod sursa (job #2567210)
#include <bits/stdc++.h>
#define dim 100005
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int grad1(),grad2(),grad3();
/// grad1 + -
/// grad2 * /
/// grad3 numere 10 11
char s[dim];
int i;
int grad1()
{
int r=grad2();
while(s[i]=='+'||s[i]=='-')
{
i++;
if(s[i-1]=='-')
r-=grad2();
else
r+=grad2();
}
return r;
}
int grad2()
{
int r=grad3();
while(s[i]=='*'||s[i]=='/')
{
i++;
if(s[i-1]=='*')
r*=grad3();
else
r/=grad3();
}
return r;
}
int grad3()
{
int r=0;
if(s[i]=='(')
{
i++;
r=grad1();
i++;
return r;
}
while(s[i]>='0'&&s[i]<='9')
{
r=r*10+s[i]-'0';
i++;
}
return r;
}
int main()
{
fin>>s;
i=0;
fout<<grad1();
}