Pagini recente » Cod sursa (job #905192) | Cod sursa (job #320712) | Cod sursa (job #187269) | Cod sursa (job #1655085) | Cod sursa (job #2567172)
#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],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*=grad2();
else
r/=grad2();
}
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();
}