Pagini recente » Profil obrejaalex11 | Atasamentele paginii 21312 | Profil Marin7 | Statistici Popescu Ioana (PopescuIoana) | Cod sursa (job #1294614)
#include <fstream>
#define lmax 100005
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int i;
char s[lmax];
int produs();
int eval();
inline int paranteza()
{
int rez=0;
if (s[i]=='(')
{
i++;
rez=eval();
i++;
}
else
while (s[i]>='0' && s[i]<='9')
rez=rez*10+(s[i++]-48);
return rez;
}
inline int produs()
{
int valoare=paranteza();
while (s[i]=='*' || s[i]=='/')
if (s[i++]=='*')
valoare*=paranteza();
else
valoare/=paranteza();
return valoare;
}
inline int eval()
{
int valoare=produs();
while (s[i]=='+' || s[i]=='-')
if (s[i++]=='+')
valoare+=produs();
else
valoare-=produs();
return valoare;
}
int main()
{
f>>s;
g<<eval();
f.close();
g.close();
}