im making a polynomial class, operator / is working while the operator /= overloaded function is not working.Someone pleasssssssssss ssseeeee help out. ive to submit it next week.
Code:
int degree;
double ab[100];
char dummy;
/////////////////////////////Division////////
Poly Poly::operator/(Poly& a)
{
Poly temp;
double result[20],temp1[20],temp2[20],temp3[20];
int count=0,cnt,i=0,j=0,k=0;
for(i=0 ; i<=20 ; i++)
{
result[i]=0;temp1[i]=0;temp2[i]=0;temp3[i]=0;
}
if(degree>=a.degree)
{
for(i=degree; i>=0 ; i--)
temp1[i]=ab[i];
for(i=a.degree-1 ; i>=0 ;i--)
temp2[i]=a.ab[i]*-1;
for(i=degree ; i>=a.degree ; i--)
{
cnt=0;
result[count]=temp1[i];
for(j=a.degree-1 ; j>=0 ; j--)
{
temp3[j]=temp2[j]*temp1[i];
}
for(k=i-1 ; k>=0 ; k--)
{
if(a.degree-1-cnt>=0)
{
temp1[k]+=temp3[a.degree-1-cnt];
cnt++;
}
}
count++;
}
count-=1;
for(i=count ; i>=0 ; i--)
temp.ab[count-i]=result[i];
temp.degree=count;
temp.dummy=dummy;
}
else
cout<<" invalid input "<<"\n";
return temp;
}
//////////not working
Poly& Poly::operator/=(Poly& a)
{
double result[20],temp1[20],temp2[20],temp3[20];
int count=0,cnt,i=0,j=0,k=0;
for(i=0 ; i<=20 ; i++)
{
result[i]=0;temp1[i]=0;temp2[i]=0;temp3[i]=0;
}
if(degree>=a.degree)
{
for(i=degree; i>=0 ; i--)
temp1[i]=ab[i];
for(i=a.degree-1 ; i>=0 ;i--)
temp2[i]=a.ab[i]*-1;
for(i=degree ; i>=a.degree ; i--)
{
cnt=0;
result[count]=temp1[i];
for(j=a.degree-1 ; j>=0 ; j--)
{
temp3[j]=temp2[j]*temp1[i];
}
for(k=i-1 ; k>=0 ; k--)
{
if(a.degree-1-cnt>=0)
{
temp1[k]+=temp3[a.degree-1-cnt];
cnt++;
}
}
count++;
} count--;
this->degree=count;
for(i=degree ; i>=0 ; i--)
this->ab[degree-i]=result[i];
cout<<"done";
}
else
cout<<" invalid input "<<"\n";
return *this;
}
Comment