Pagini recente » Cod sursa (job #1080593) | Cod sursa (job #213772) | Cod sursa (job #2510712) | Cod sursa (job #1225855) | Cod sursa (job #2244630)
#include <fstream>
#include <stack>
#include <cstring>
#include <cctype>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
const int NMAX=100010;
char sn[NMAX],*p=sn;
int expresie(),term(),fact();
int main()
{
fin.getline(sn,NMAX);
fout<<expresie();
return 0;
}
int expresie()
{
int rez=term();
while(*p=='+' || *p=='-')
{
char s=*p;
++p;
int val=term();
if(s=='+')
rez+=val;
else
rez-=val;
}
return rez;
}
int term()
{
int rez=fact();
while(*p=='*' || *p=='/')
{
char s=*p;
p++;
int val=fact();
if(s=='*')
rez=rez*val;
else
rez=rez/val;
}
return rez;
}
int fact()
{
if(*p>='0' && *p<='9')
{
int rez=0;
while(*p>='0' && *p<='9')
{
rez=rez*10+ *p-'0';
++p;
}
return rez;
}
else
{
++p;
int rez=expresie();
++p;
return rez;
}
}