Pagini recente » Cod sursa (job #1669154) | Cod sursa (job #278992) | Cod sursa (job #1453745)
#include<fstream>
#include<cstring>
using namespace std;
ofstream fout("evaluare.out");
ifstream fin("evaluare.in");
const long MMAX = 100002;
char exp[MMAX], *p = exp;
long termen();
long subexp()
{
long sol = 0;
if(*p == '(') {
p++;
sol = termen();
p++;
}
else
while (*p >= '0' && *p <= '9') {
sol = sol * 10 + *p - '0';
p++;
}
return sol;
}
long factor()
{
long sol = subexp();
while(*p == '*' || *p == '/') {
if(*p == '*') {
p++;
sol *= subexp();
}
if(*p == '/') {
p++;
sol /= subexp();
}
}
return sol;
}
long termen()
{
long sol = factor();
while(*p == '+' || *p == '-') {
if(*p == '+') {
p++;
sol += factor();
}
if(*p == '-') {
p++;
sol -= factor();
}
}
return sol;
}
int main()
{
fin >> exp;
fout << termen();
fin.close();
fout.close();
return 0;
}