Pagini recente » Cod sursa (job #2712045) | Cod sursa (job #2917147) | Cod sursa (job #2711456) | Cod sursa (job #2219063) | Cod sursa (job #3162624)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("evaluare.in");
ofstream out("evaluare.out");
const int MAX = 100000;
char c[MAX];
int poz;
int adunare();
int factor()
{
int number=0;
if(c[poz]=='(')
{
++poz;
number=adunare();
++poz;
}
else
{
number=0;
while(c[poz]>='0' && c[poz]<='9')
{
number = number*10+c[poz]-'0';
poz++;
}
}
return number;
}
int inmultire()
{
int res=factor();
while(c[poz]=='*' || c[poz]=='/')
{
if(c[poz]=='*')
{
poz++;
res*=factor();
}
else
{
poz++;
res/=factor();
}
}
return res;
}
int adunare()
{
int res=inmultire();
while(c[poz]=='+' || c[poz]=='-')
if(c[poz]=='+')
{
poz++;
res+=inmultire();
}
else
{
poz++;
res-=inmultire();
}
return res;
}
int main()
{
in>>c;
poz=0;
out<<adunare();
return 0;
}