Pagini recente » Cod sursa (job #2200003) | Cod sursa (job #2667412) | Cod sursa (job #1528389) | Cod sursa (job #1808700) | Cod sursa (job #872821)
Cod sursa(job #872821)
#include<fstream>
#include<string>
using namespace std;
string s;
int x;
int egal(int x,int y,char op)
{
switch(op)
{
case '+': return x+y;
case '-': return x-y;
case '*': return x*y;
case '/': return x/y;
}
}
int eval();
int nr()
{
if (s[x]=='(')
{
x++;
return eval();
}
int k=0;
while ((s[x]>='0') && (s[x]<='9'))
{
k=k*10+s[x]-'0';
x++;
}
return k;
}
int eval2()
{
int k,t;
char op;
k=nr();
while ((s[x]=='*') || (s[x]=='/'))
{
op=s[x];
x++;
t=nr();
k=egal(k,t,op);
}
return k;
}
int eval()
{
int k,t;
char op;
k=eval2();
while (s[x]!=')')
{
op=s[x];
x++;
t=eval2();
k=egal(k,t,op);
}
x++;
return k;
}
int main()
{
ifstream f("evaluare.in");
ofstream g("evaluare.out");
f >> s;
s[s.length()]=')';
x=0;
g << eval();
}