Pagini recente » Cod sursa (job #1293178) | Cod sursa (job #834847) | Cod sursa (job #1534625) | Cod sursa (job #2498973) | Cod sursa (job #2256324)
#include <bits/stdc++.h>
using namespace std;
ifstream f ( "evaluare.in" ) ;
ofstream g ( "evaluare.out" ) ;
int factor();
int termen();
int expresie();
int n,i,l;
char s[100001];
int termen()
{int t=factor();
while (i<l && (s[i]=='+' || s[i]=='-'))
{
if (s[i]=='+') {i ++ ; t=t+factor();}
if (s[i]=='-'){i ++ ; t=t-factor();}
}
return t;
}
int expresie()
{
int t ;
if (s[i]=='(')
{
i++;
t=termen();
i++;
}
else {t = 0;
while (isdigit(s[i]))
{
t = t * 10 + (s[i] - '0');
i ++ ;
}
}
return t ;
}
int factor ()
{int t;
t=expresie();
while (i<l && (s[i]=='*')||(s[i]=='/'))
{
if (s[i]=='*') {i ++ ; t=t*expresie();}
else {i++ ; t=t/expresie();}
}
return t;
}
int main()
{f>>s;
l=strlen(s);
g<<termen();
return 0;
}