Polynomial Addition


Program

#include <stdio.h> #define MAX 100 void printPoly(int *p, int n) { int started = 0; for (int i = n; i >= 0; i--) { if (p[i]) { if (started) printf(" + "); if (i == 0) printf("%d", p[i]); else printf("%dX^%d", p[i], i); started = 1; } } } void addPoly(int * p1, int n1, int * p2, int n2, int * sum) { int i = 0, j = 0, k = 0; while (i <= n1 && j <= n2) sum[k++] = p1[i++] + p2[j++]; while (i <= n1) sum[k++] = p1[i++]; while (j <= n2) sum[k++] = p2[j++]; } int main() { int n1, n2, p1[MAX], p2[MAX], sum[MAX]; printf("Enter first polynomial degree: "); scanf("%d", &n1); printf("Enter first polynomial coefficients: "); for (int i = n1; i >= 0; i--) scanf("%d", &p1[i]); printf("Enter second polynomial degree: "); scanf("%d", &n2); printf("Enter second polynomial coefficients: "); for (int i = n2; i >= 0; i--) scanf("%d", &p2[i]); printf("\nThe first polynomial: "); printPoly(p1, n1); printf("\nThe second polynomial: "); printPoly(p2, n2); addPoly(p1, n1, p2, n2, sum); printf("\nThe sum: "); printPoly(sum, n1 > n2 ? n1 : n2); printf("\n"); }