Pagini recente » Cod sursa (job #2304778) | Cod sursa (job #763148) | Cod sursa (job #2705760) | Cod sursa (job #2987020) | Cod sursa (job #1141030)
#include<cstdio>
#include<stdio.h>
#include<fstream>
#include<stdlib.h>
using namespace std;
#ifdef _WIN32
#define _CRT_SECURE_NO_DEPRECATE
#endif
char S[100001], *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, 100000);
cout << eval() << '\n';
return 0;
}