Pagini recente » Cod sursa (job #2473389) | Cod sursa (job #1997629) | Cod sursa (job #1230486) | Cod sursa (job #1234083) | Cod sursa (job #2876089)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
char s[100010], *p = s;
int evaluare();
int termen();
int factor()
{
int x = 0;
if(*p == '(')
{
p++;
x = evaluare();
p++;
}
else{
while(*p <= '9' && *p >= '0')
{
x = x*10 + (*p-'0');
p++;
}
}
return x;
}
int termen()
{
int x = factor();
while ( *p == '*' || *p == '/')
{
if(*p == '*')
{
p++;
x=x* factor();
}
else {
p++;
x=x/ factor();
}
}
return x;
}
int evaluare()
{
int x = termen();
while( *p == '+' || *p == '-')
{
if(*p == '+')
{
p++;
x=x+ termen();
}
else{
p++;
x=x- termen();
}
}
return x;
}
int main()
{
fin>>s;
fout<<evaluare();
return 0;
}