Pagini recente » Cod sursa (job #168639) | Cod sursa (job #20501) | Cod sursa (job #153283)
Cod sursa(job #153283)
#include<fstream.h>
#define dim 50001
long v[dim],k;
ifstream f("evaluare.in");
char x;
void eval(char stop,long jos);
long numar()
{char y;
f.get(y);
if(y=='('){x='+'; eval(')',k);f.get(x);return v[k];}
else
{long r=0;
while(y!='\n')
{if((y>='0')&&(y<='9'))
r=r*10+(y-'0');
else break;
f.get(y);
}
x=y;
return r;
}
}
void eval(char stop,long jos)
{long y;
while(x!=stop)
{if(x=='*'){y=numar();v[k-1]*=y;}
else if(x=='/'){y=numar();v[k-1]/=y;}
else if(x=='-'){y=numar();v[k]=-y;k++;}
else if(x=='+'){y=numar();v[k]=y;k++;}
}
if(x==stop)
{k--;
for(long i=k;i>jos;i--)
v[jos]+=v[i];
k=jos;
}
}
int main()
{k=1;x='+';
eval('\n',0);
f.close();
ofstream g("evaluare.out");
g<<v[0]<<'\n';
g.close();
return 0;
}