Pagini recente » Cod sursa (job #2232820) | Cod sursa (job #2525523) | Cod sursa (job #1842435) | Cod sursa (job #2011802) | Cod sursa (job #150399)
Cod sursa(job #150399)
#include<fstream.h>
#include<string.h>
ifstream f("ec.in");
ofstream g("ec.out");
char a[100001],c,b[100001],vec[100001];
long i,j,nr,v,v1;
float st[100001];
int main()
{
f.getline(a,1000);
for(i=0;i<strlen(a);i++)
{
if(a[i]>='0' && a[i]<='9')
vec[nr++]=a[i];
else
if(a[i]=='*' || a[i]=='/')
b[v++]=a[i];
else
if(a[i]=='-' || a[i]=='+')
{
v1=v-1;
while(b[v1]!='-' && b[v1]!='+' && v1>=0 && b[v1]!='(')
v1--;
for(j=v-1;j>v1;j--)
vec[nr++]=b[j];
v=v1+1;
b[v++]=a[i];
}
else
if(a[i]=='(')
b[v++]=a[i];
else
if(a[i]==')')
while(b[--v]!='(')
vec[nr++]=b[v];
}
for(i=v-1;i>=0;i--)
vec[nr++]=b[i];
int x=0;
for(i=0;i<nr;i++)
if(vec[i]>='0' && vec[i]<='9')
st[x++]=int(vec[i]-'0');
else
if(vec[i]=='+')
st[x-1]+=st[--x];
else
if(vec[i]=='-')
st[x-1]-=st[--x];
else
if(vec[i]=='*')
st[x-1]*=st[--x];
else
if(vec[i]=='/')
st[x-1]/=st[--x];
g<<st[0]<<'\n';
g.close();
return 0;
}