다항식의 계산 첫번째 방법 답 출력 변형(0인 항 삭제)

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> #define MAX(a,b) (a>b)?a:b //a가 b보다 큰가요? 그렇다면 a, 아니면 b #define MAX_DEGREE 101 typedef struct{ //다항식 구조체 타입 선언 int degree; //다항식의 차수 float coef[MAX_DEGREE]; //다항식의 계수 }polynomial; polynomial poly_add1(polynomial A, polynomial B){ polynomial C; int Apos = 0, Bpos = 0, Cpos = 0; int degree_a = A.degree; int degree_b = B.degree; C.degree = MAX(A.degree,B.degree); while(Apos <= A.degree && Bpos <= B.degree){ if (degree_a > degree_b){ C.coef[Cpos++] = A.coef[Apos++]; degree_a--; } else if (degree_a < degree_b){ C.coef[Cpos++] = B.coef[Bpos++]; degree_b--; } else{ C.coef[Cpos++] = A.coef[Apos++] + B.coef[Bpos++]; degree_a--; degree_b--; } } return C; } void print_poly(polynomial p1){ for(int i=p1.degree;i>0;i--) printf("%3.lfx^%d + ",p1.coef[p1.degree - i], i); printf("%.3lf \n",p1.coef[p1.degree]); } void print_answer_poly(polynomial p2){ for(int i=p2.degree;i>0;i--){ if(p2.coef[p2.degree - i] != 0) printf("%3.lfx^%d + ",p2.coef[p2.degree - i], i); } printf("%.3lf \n",p2.coef[p2.degree]); } int main(void) { polynomial a = {5, {3, 6, 0, 0, 0, 10}}; polynomial b = {4, {7,0,5,0,1} }; polynomial c; print_poly(a); print_poly(b); c = poly_add1(a,b); printf("--------------------------------------------------------------------\n"); print_answer_poly(c); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines