Pagini recente » Cod sursa (job #461247) | Cod sursa (job #1931528) | Cod sursa (job #754157) | Cod sursa (job #835488) | Cod sursa (job #3213418)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char ec[100005], *p = ec;
int Termen();
int Factor();
int Eval()
{
int r = Termen();
while(*p == '+' || *p == '-')
switch(*p)
{
case '+': p++; r += Termen(); break;
case '-': p++; r -= Termen(); break;
}
return r;
}
int Termen()
{
int r = Factor();
while(*p == '*' || *p == '/')
switch(*p)
{
case '*': p++; r *= Factor(); break;
case '/': p++; r /= Factor(); break;
}
return r;
}
int Factor()
{
int r = 0;
if(*p=='(')
{
p++;
r = Eval();
p++;
}
else
{
while(*p >= '0' && *p <= '9')
{
r = r * 10 + *p - '0';
p++;
}
}
return r;
}
int main()
{
fin >> ec;
fout << Eval() << "\n";
fin.close();
fout.close();
return 0;
}