Pagini recente » Cod sursa (job #2668246) | Cod sursa (job #860536) | Cod sursa (job #2350442) | Cod sursa (job #1487470) | Cod sursa (job #3170377)
#include <bits/stdc++.h>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
char s[100005];
int pos;
int add();
int mult();
int fact();
int add()
{
int res=mult();
while(s[pos]=='+' || s[pos]=='-')
{
if(s[pos]=='+')
{
++pos;
res+=mult();
}
else
{
++pos;
res-=mult();
}
}
return res;
}
int mult()
{
int res=fact();
while(s[pos]=='*' || s[pos]=='/')
{
if(s[pos]=='*')
{
++pos;
res*=fact();
}
else
{
++pos;
res/=fact();
}
}
return res;
}
int fact()
{
int x=0;
if(s[pos]=='(')
{
++pos;
x=add();
++pos;
}
else while(s[pos]>='0' && s[pos]<='9')
{
x=x*10+s[pos]-'0';
pos++;
}
return x;
}
int main()
{
f>>s;
g<<add();
return 0;
}