Pagini recente » Cod sursa (job #2939342) | Cod sursa (job #859730) | Cod sursa (job #225508) | Cod sursa (job #741986) | Cod sursa (job #2256060)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("expresie.in");
ofstream g("expresie.out");
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()
{
f>>s;
lg=strlen(s);
i=0;
g<<termen();
return 0;
}