Pagini recente » Cod sursa (job #2658124) | Cod sursa (job #1830139) | Cod sursa (job #564998) | Cod sursa (job #2384505) | Cod sursa (job #2335789)
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int expresie();
int factor();
int term();
char s[100002];
int i=0;
int expresie()
{
int r=term();
while(s[i]=='+'||s[i]=='-')
{
if(s[i]=='+'){i++;r+=term();}
else {i++;r-=term();}
}
return r;
}
int term()
{
int r=factor();
while(s[i]=='*'||s[i]=='/')
{
if(s[i]=='*'){i++;r*=factor();}
else {i++;r/=factor();}
}
return r;
}
int factor()
{
int r;
if(s[i]=='(')
{
i++;
r=expresie();
i++;
}
else
{
r=0;
while(s[i]>='0'&&s[i]<='9')
{
r=r*10+s[i]-'0';
++i;
}
}
return r;
}
int main()
{
f>>s;
g<<expresie();
return 0;
}