Pagini recente » Cod sursa (job #30543) | Cod sursa (job #2948302) | Cod sursa (job #231472) | Cod sursa (job #2130503) | Cod sursa (job #2815419)
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int i;
int exp();
int termen();
int factor();
char v[100005];
int exp()
{
int nr=termen();
while(v[i]=='+'||v[i]=='-'){
if(v[i]=='+')
{
i++;
nr+=termen();
}
else
{
i++;
nr-=termen();
}
}
return nr;
}
int termen()
{
int nr=factor();
while(v[i]=='*' || v[i]=='/')
{
if(v[i]=='*')
{
i++;
nr*=factor();
}
else
{
i++;
nr/=factor();
}
}
return nr;
}
int factor()
{
int nr=0;
if(v[i]=='(')
{
i++;
nr=exp();
i++;
}
else
{
nr=0;
while(v[i]>='0' && v[i]<='9')
{
nr=nr*10+(v[i]-'0');
i++;
}
}
return nr;
}
int main()
{
fin>>v;
i=0;
fout<<exp();
}