Pagini recente » Cod sursa (job #2747891) | Cod sursa (job #2831218) | Cod sursa (job #2178928) | Cod sursa (job #2235642) | Cod sursa (job #979868)
Cod sursa(job #979868)
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("evaluare.in");
ofstream fout ("evaluare.out");
char s[100001];
int i,n;
int term ();
int factor ();
int expression ()
{
int res = term();
while (s[i]=='+' || s[i]=='-')
{
++i;
if (s[i-1]=='+') res += term ();
else res -= term ();
}
return res;
}
int term ()
{
int res = factor ();
{
while (s[i]=='*' || s[i]=='/')
{
++i;
if (s[i-1]=='*') res *= factor ();
else res /= factor ();
}
}
return res;
}
int factor ()
{
int res=0;
if (s[i]=='(')
{
++i;
res = expression ();
++i;
}
else while (s[i]>='0' && s[i]<='9')
{
res = res*10 + s[i]-'0';
++i;
}
return res;
}
int main()
{
fin>>s;
n = strlen(s);
i=0;
fout<<expression ();
}