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