#include #include #define MAX_DEGREE 100 typedef struct { int degree; float coef[MAX_DEGREE]; }polynomial; void input(char poly); void add_poly(); void result(); polynomial a,b,c; void main() { input('a'); input('b'); add_poly(); result(); } void input(char poly) { int i,j,k; printf("%c(x) ´ÙÇ×½ÄÀÇ Â÷¼ö¸¦ ÀÔ·ÂÇϽÿÀ :",poly); if(poly == 'a') { scanf("%d", &b.degree); k = a.degree; } else { scanf("%d",&b.degree); k = b.degree; } printf("\n´ÙÇ×½ÄÀÇ ÃÖ°íÂ÷ Ç׺ÎÅÍ °è¼ö¸¦ ÀÔ·ÂÇϽÿÀ. \n"); j = k; for(i = 0; i <= k; i++) { printf("x^%dÀÇ °è¼ö¸¦ ÀÔ·ÂÇϼ¼¿ä : ", j--); if(poly == 'a') scanf("%f",&a.coef[i]); else scanf("%f",&b.coef[i]); } printf("\n\n"); } void add_poly() { int i,j; float sum; c.degree = (a.degree >= b.degree) ? a.degree : b.degree; j = a.degree - b.degree; for (i = c.degree; i >= 0; i--) { if ((i - abs(j)) >= 0) { if(j > 0) { sum = a.coef[i] + b.coef[i-abs(j)]; c.coef[i] = sum; } else if (j == 0) { sum = a.coef[i] + b.coef[i]; c.coef[i] = sum; } else if(j < 0) { sum = a.coef[i-abs(j)] + b.coef[i]; c.coef[i] = sum; } } else c.coef[i] = (j >= 0) ? a.coef[i] : b.coef[i]; } } void result() { int i; printf("°á°ú´Â : "); for(i = 0; i <= c.degree; i++) { if(c.degree-i !=0) { if(c.coef[i] !=0) { printf("%.0fx^%d",c.coef[i],c.degree-i); printf(" + "); } } else printf("%.0f\n",c.coef[i]); } }