Pagini recente » Cod sursa (job #2064684) | Cod sursa (job #1187526) | Cod sursa (job #1641291) | Cod sursa (job #1163792) | Cod sursa (job #1525128)
#include <fstream>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
int l;
string s;
int rezultat();
int expr2()
{
int rez=0;
if(s[l]=='(')
{
++l;
rez=rezultat();
++l;
}
else while(s[l]>='0' && s[l]<='9') {
rez=rez*10+(int)s[l]-48; ++l;
}
return rez;
}
int expr()
{
int exp=expr2();
while(s[l]=='*' || s[l]=='/')
{
if(s[l]=='*'){ ++l; exp*=expr2();}
else { ++l; exp/=expr2();}
}
return exp;
}
int rezultat()
{
int rez=expr();
while(s[l]=='+' || s[l]=='-')
{
if(s[l]=='+'){ ++l; rez+=expr(); }
else { ++l; rez-=expr();}
}
return rez;
}
int main()
{
getline(fin, s);
fout<<rezultat();
return 0;
}