HI

I want to add two polynomials

5x^2 - 3xy + y

and

2x^2 - y^2 + 5xy - x + y

using arrays .

I used one array to store the coefficient,power of x ,power of y for the subsequent terms of the 1st polynomial.

a=|5|2|0|-3|1|1|1|0|1|

similary for the other polynomial the array is

b=|2|2|0|-1|0|2|5|1|1|-1|1|0|1|0|1|

Then I copied both the arrays into a third array

c=|5|2|0|-3|1|1|1|0|1|2|2|0|-1|0|2|5|1|1|-1|1|0|1|0|1|

so the 0,3,6,9....elements of array display the coeff.

1,4,7....elements of array display the power of x

2,5,8....elements of array display the power of y

I traversed the array and added the coeff. of the terms having same power of x and y

and then when I try to print the array it is not showing the proper result (showing only the sum of the highest terms)

can anyone point out my mistake ?

Code:#include <stdio.h> int main() { int a[27],b[27],c[54],m,n,i,j,z,y=0,t,s=0; printf ("How many terms you want to add in the 1st polynomial ?? : "); scanf ("%d",&n); printf ("Enter 1st polynomial : \n"); for (i=0;i<n*3;i=i+3) { printf ("Enter coefficient : "); scanf("%d",&a[i]); printf ("Enter power of x : "); scanf("%d",&a[i+1]); printf ("Enter power of y : "); scanf("%d",&a[i+2]); } printf ("1st polynomial is : "); for (i=0;i<n*3;i=i+3) { printf ("(%dx^%dy^%d) + ",a[i],a[i+1],a[i+2]); } printf (" 0 \n"); printf ("How many terms you want to add in the 2nd polynomial ?? : "); scanf ("%d",&m); printf ("Enter 2nd polynomial : \n"); for (i=0;i<m*3;i=i+3) { printf ("Enter coefficient : "); scanf("%d",&b[i]); printf ("Enter power of x : "); scanf("%d",&b[i+1]); printf ("Enter power of y : "); scanf("%d",&b[i+2]); } printf ("2nd polynomial is : "); for (i=0;i<m*3;i=i+3) { printf ("(%dx^%dy^%d) + ",b[i],b[i+1],b[i+2]); } printf (" 0\n"); printf ("Enter 1 to add : "); scanf("%d",&z); switch (z) { case 1: for (i=0;i<n*3;i++) {c[i]=a[i];} for (i=n*3,j=0;i<(n+m)*3,j<m*3;i++,j++) {c[i]=b[j];} for (i=0;i<(m+n)*3;i=i+3) { printf ("(%dx^%dy^%d) + ",c[i],c[i+1],c[i+2]); } printf (" 0\n"); } for (i=1;i<(m+n)*3;i=i+3) { for (j=4;j<(m+n)*3;j=j+3) { if (c[i]==c[j]) { if(c[i+1]==c[j+1]) { c[i-1]=c[i-1]+c[j-1]; c[j-1]=0; } } } } printf ("ADDITION \n"); for (i=0;i<(m+n)*3;i=i+3) if (c[i]!=0) { printf ("(%dx^%dy^%d) + ",c[i],c[i+1],c[i+2]); } else printf (" "); printf (" 0 \n"); }