Pagini recente » Cod sursa (job #144266) | Cod sursa (job #656286) | Cod sursa (job #1304223) | Cod sursa (job #1211308) | Cod sursa (job #1141035)
#include<cstdio>
#include<stdio.h>
#include<fstream>
#include<stdlib.h>
using namespace std;
const int nr = 100001;
#ifdef _WIN32
#define _CRT_SECURE_NO_DEPRECATE
#endif
char S[nr], *p = S;
int eval();
int f();
int number();
int eval()
{
int x = f();
while ((*p == '+') || (*p == '-'))
{
if (*p == '+') ++p, x += f();
else
if (*p == '-') ++p, x -= f();
}
return x;
}
int f()
{
int x = number();
while ((*p == '/') || (*p == '*'))
{
if (*p == '*') ++p, x *= number();
else
if (*p == '/') ++p, x /= number();
}
return x;
}
int number()
{
int x = 0;
if (*p == '(') ++p, x = eval(), ++p;
else
while (*p >= '0' && '9' >= *p)
x = x * 10 + (*p - '0'), ++p;
return x;
}
int main()
{
fstream cin("evaluare.in", ios::in);
fstream cout("evaluare.out", ios::out);
cin.getline(S, nr);
cout << eval() << '\n';
return 0;
}