Pagini recente » Cod sursa (job #830103) | Cod sursa (job #1438904) | Cod sursa (job #2126035) | Cod sursa (job #2535434) | Cod sursa (job #2259716)
#include <fstream>
#include <cstring>
using namespace std;
int expresie(),termen(),factor();
int i,lg;
char s[100100];
int expresie()
{
int t,nr;
if(s[i]=='(')
{
i++;
t=termen();
i++;
}
else
{
nr=0;
while('0'<=s[i]&&s[i]<='9')
{
nr=nr*10+(s[i]-'0');
i++;
}
t=nr;
}
return t;
}
int factor()
{
int f;
f=expresie();
while(i<lg && (s[i]=='*'||s[i]=='/'))
{
i++;
if(s[i-1]=='*')
f=f*expresie();
else
f=f/expresie();
}
return f;
}
int termen()
{
int t;
t=factor();
while(i<lg && (s[i]=='+'||s[i]=='-'))
{
i++;
if(s[i-1]=='+')
{
t=t+factor();
}
else
t=t-factor();
}
return t;
}
int main()
{
ifstream fin("evaluare.in");
ofstream fout("evaluare.out");
fin>>s;
lg=strlen(s);
i=0;
fout<<termen();
return 0;
}