Pagini recente » Rating Cipi Ciprian (CiprianCipan) | Cod sursa (job #2085008)
#include<fstream>
#include<cmath>
#include<iostream>
#define DN 100005
#include<vector>
#include<cctype>
#include<cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int ec();
int termen();
int factor();
char a[DN];
int poz;
int ec()
{
int r=0;
r=termen();
while(a[poz]=='+'||a[poz]=='-')
{
if(a[poz]=='+')
{
poz++;
r+=termen();
}
else
{
poz++;
r-=termen();
}
// poz++;
}
return r;
}
int termen()
{
int r=0;
r=factor();
while(a[poz]=='*'||a[poz]=='/')
{
if(a[poz]=='*')
{
poz++;
r*=factor();
}
else
{
poz++;
r/=factor();
}
// poz++;
}
return r;
}
int factor()
{
int r=0;
if(a[poz]=='(')
{
poz++;
r=ec();
poz++;
}
else
while(isdigit(a[poz]))
{
r=r*10+(a[poz]-'0');
poz++;
}
return r;
}
int main()
{
fin.getline(a,DN);
fout<<ec();
}