Pagini recente » Cod sursa (job #2986599) | Cod sursa (job #3251059) | Cod sursa (job #781839) | Cod sursa (job #1559228) | Cod sursa (job #3193340)
#include <bits/stdc++.h>
#include <cctype>
#define inf 1000000000
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[100005];
int pos;
int add();
int mult();
int factor();
int add()
{
int r = mult();
while (s[pos] == '+' || s[pos] == '-')
{
if(s[pos] == '+')
{
pos++;
r += mult();
}
else
{
pos++;
r += mult();
}
}
return r;
}
int mult()
{
int r = factor();
while(s[pos] == '*' || s[pos] == '/')
{
if(s[pos] == '*')
{
pos++;
r *= factor();
}
else
{
pos++;
r /= factor();
}
}
return r;
}
int factor()
{
int r = 0;
if(s[pos] == '(')
{
pos++;
r = add();
pos++;
}
else
{
while(isdigit(s[pos]))
{
r = r * 10 + (s[pos] - '0');
pos++;
}
}
return r;
}
int main()
{
fin >> s;
pos = 0;
fout << add();
}