Pagini recente » Cod sursa (job #1978311) | Cod sursa (job #2193002) | Cod sursa (job #557510) | Cod sursa (job #2527654) | Cod sursa (job #2103626)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char e[100060];
int p,i;
int eval(), t(), f();
int eval(){
int r;
r= t();
while (e[p]=='-'||e[p]=='+')
{
if (e[p]=='-')
{
p++;
r-=t();
}
else
{
p++;
r+=t();
}
}
return r;
}
int t(){
int r=f();
while (e[p]=='*'||e[p]=='/')
{
if (e[p]=='/')
{
p++;
r/=f();
}
else
{
p++;
r*=f();
}
}
return r;
}
int f(){
int r=0;
if (e[p]=='(')
{
p++;
r=eval();
p++;
}
else while (e[p]>='0'&&e[p]<='9')
{
r=r*10+e[p]-'0';
p++;
}
return r;
}
int main()
{
fin>>e;
fout<<eval();
return 0;
}