Pagini recente » Cod sursa (job #1544579) | Cod sursa (job #147519) | Ciorna | Monitorul de evaluare | Cod sursa (job #2149966)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int i, t;
char s[100001];
int expresie();
int factor();
int termen();
int main()
{
fin.getline(s, 100001);
fout<<expresie();
return 0;
}
int expresie()
{int t=termen();
while(s[i]=='+' || s[i]=='-')
if(s[i]=='+')
{i++; t+=termen();}
else {i++; t-=termen();}
return t;
}
int termen()
{int t=factor();
while(s[i]=='*'||s[i]=='/')
if(s[i]=='*')
{i++; t*=factor();}
else {i++; t/=factor();}
return t;
}
int factor()
{int t=0;
if(s[i]=='(')
{i++; t=expresie(); i++;}
else while(s[i]>='0' && s[i]<='9')
{t=t*10+s[i]-'0'; i++;}
return t;
}