Sunday, March 18, 2012

Polynomial Addition using array of structure

/* Program Name: Polynomial Addition using array of structure
Done By: Prof.Dhumane A.V. VIIT, Pune
*/

#include
#include
#include

struct poly
{
int coeff;
int expo;
};

void accept_poly(struct poly*poly,int degree)
{
int i;
printf("\n Enter the Coefficient of the polynomial");
for(i=degree;i>=0;i--)
{
poly[i].expo=i;
printf("Coefficient of X^%d=",i);
scanf("%d",&poly[i].coeff);
}
}
void display_poly(struct poly*poly,int degree)
{
int i;
for(i=degree;i>=0;i--)
{
printf("%dX^%d + ",poly[i].coeff,poly[i].expo);
}
}
void add_poly(struct poly*poly1,int degree1,struct poly*poly2,int degree2)
{
struct poly*poly3;
int degree3,k=0,i,j;

if(degree1>degree2)
degree3=degree1;
else
degree3=degree2;


for(i=degree1,j=degree2;degree3>=0;)
{
if(poly1[i].expo==poly2[j].expo)
{
poly3[k].expo=poly1[i].expo;
poly3[k].coeff=poly1[i].coeff+poly2[j].coeff;
k++;
i--;
j--;
}
else
{
if(poly1[i].expo>poly2[j].expo)
{
poly3[k]=poly1[i];
k++;
i--;
}
else
{
poly3[k]=poly2[j];
k++;
j--;
}
}
degree3--;
}

k--;

for(i=0;i<=k;i++)
{
printf("%dX^%d+",poly3[i].coeff,poly3[i].expo);
}

}

void main()
{
struct poly poly1[20],poly2[20],poly3[20];
int degree1,degree2,cho;
clrscr();

while(1)
{
printf("\n1.Accept FIRST polynomial");
printf("\n2.Accept SECOND polynomial");
printf("\n3.Display FIRST polynomial ");
printf("\n4.Display SECOND polynomial ");
printf("\n5.Add polynomials");

printf("\nEnter your choice ");
scanf("%d",&cho);
switch(cho)
{
case 1:
printf("\nEnter the DEGREE of first polynomial ");
scanf("%d",°ree1);
accept_poly(poly1,degree1);
break;
case 2:
printf("\nEnter the DEGREE of second polynomial ");
scanf("%d",°ree2);
accept_poly(poly2,degree2);
break;
case 3:
display_poly(poly1,degree1);
break;
case 4:
display_poly(poly2,degree2);
break;
case 5:
add_poly(poly1,degree1,poly2,degree2);
getch();
exit(0);
}

}
}

No comments:

Post a Comment