#include<stdio.h> #include<conio.h> #include<stdlib.h> struct poly { int co; int pow; }; typedef struct poly POLY; int main(void) { POLY *p,*q; int m,n,i,j; printf("Enter the highest power of both poly[m>n]: "); scanf("%d%d",&m,&n); p=(POLY*)malloc((m+1)*(sizeof(POLY))); printf("Enter the coefficient and power of the 1st poly: \n"); for(i=0;i<=m;i++) scanf("%d %d",&p[i].co,&p[i].pow); q=(POLY*)malloc((n+1)*(sizeof(POLY))); printf("Enter the coefficient and power of the 2nd poly: \n"); for(i=0;i<=n;i++) scanf("%d %d",&q[i].co,&q[i].pow); printf("The polynomial is: \n"); for(i=0;i<=m;i++) { for(j=0;j<=n;j++) { if(*(&p[i].pow)==*(&q[j].pow)) { *(&p[i].co)=*(&p[i].co)+*(&q[j].co) ; break; } else *(&p[i].co)=*(&p[i].co) ; } printf("%dX^%d ",*(&p[i].co),*(&p[i].pow)); if(i!=m) printf("+ "); } free(p); free(q); getch(); return 0; }