Pagini recente » Cod sursa (job #1252189) | Cod sursa (job #862570) | Cod sursa (job #1972024) | Cod sursa (job #2300915) | Cod sursa (job #1497305)
#include<fstream>
#include<iostream>
#include<string.h>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
char v[100000];
int adunare();
int i = 0;
int exp()
{
if (v[i] != '(')
{
int nr = 0;
while (v[i] >= '0' && v[i] <= '9')
{
nr = nr * 10 + v[i] - '0';
++i;
}
return nr;
}
else if (v[i] == '(')
{
++i;
int a = adunare();
++i;
return a;
}
}
int inmultire()
{
int t1 = exp();
while (v[i] == '*' || v[i] == '/')
{
if (v[i] == '*')
{
++i;
t1 *= exp();
}
else
{
++i;
t1 /= exp();
}
}
return t1;
}
int adunare()
{
int t1 = inmultire();
while (v[i] == '+' || v[i] == '-')
{
if (v[i] == '+')
{
++i;
t1 += inmultire();
}
else
{
++i;
t1 -= inmultire();
}
}
return t1;
}
int main()
{
in >> v;
out << adunare();
return 0;
}