Pagini recente » Cod sursa (job #1125306) | Cod sursa (job #2830938) | Cod sursa (job #11724) | Cod sursa (job #2687271) | Cod sursa (job #1489471)
#include <bits/stdc++.h>
#define MAX 100001
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int factor();
int termen();
int expresie();
char s[MAX];
int p;
int main()
{
fin>>s;
fout<<expresie();
return 0;
}
int factor()
{
int ans = 0;
if(s[p] == '(')
{
p++;
ans = expresie();
p++;
}
else
while('0' <= s[p] and s[p] <= '9')
{
ans = ans * 10 + s[p] - '0';
p++;
}
return ans;
}
int termen()
{
int ans = factor();
while(s[p] == '*' or s[p] == '/')
if(s[p] == '*')
{
p++;
ans = ans * factor();
}
else
{
p++;
ans = ans / factor();
}
return ans;
}
int expresie()
{
int ans = termen();
while(s[p] == '+' or s[p] == '-')
if(s[p] == '+')
{
p++;
ans = ans + termen();
}
else
{
p++;
ans = ans - termen();
}
return ans;
}