Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define MAX(a,b) ((a>b)?a:b)
- #define MAX_DEGREE 50
- typedef struct {
- int degree;
- float coef[MAX_DEGREE + 1];
- }polynomial;
- void printPoly(polynomial poly);
- void zeroP(polynomial *poly);
- int isZeroP(polynomial poly);
- float coef(polynomial poly, int exp);
- void addTerm(polynomial *poly, float val, int exp);
- void delTerm(polynomial *poly, int exp);
- polynomial multTerm(polynomial A, float val, int exp);
- void main()
- {
- polynomial A;
- polynomial C;
- zeroP(&A);
- addTerm(&A, 4, 3);
- addTerm(&A, 3, 2);
- addTerm(&A, 5, 0);
- zeroP(&C);
- C = multTerm(A, 2.0, 3);
- /* 결과 출력 */
- printf("\n A(x)="); printPoly(A); // 다항식 A 출력
- printf("\n C(x)="); printPoly(C); // 다항식 C 출력
- }
- void printPoly(polynomial poly)
- {
- int i;
- for (i = 0; i <= MAX_DEGREE; i++)
- if (poly.coef[i] != 0)
- printf("%3.0fx^%d", poly.coef[i], MAX_DEGREE - i);
- printf("\n");
- }
- void zeroP(polynomial *poly)
- {
- int i;
- poly->degree = 0;
- for (i = 0; i<MAX_DEGREE + 1; i++) {
- poly->coef[i] = 0;
- }
- }
- int isZeroP(polynomial poly)
- {
- if (poly.degree == 0 && poly.coef[MAX_DEGREE] == 0)
- return 1;
- else
- return 0;
- }
- float coef(polynomial poly, int exp)
- {
- return poly.coef[MAX_DEGREE - exp];
- }
- void addTerm(polynomial *poly, float val, int exp)
- {
- poly->coef[MAX_DEGREE - exp] = val;
- if (exp > (poly->degree))
- poly->degree = exp;
- }
- void delTerm(polynomial *poly, int exp)
- {
- poly->coef[MAX_DEGREE - exp] = 0;
- if (poly->degree>0)
- poly->degree--;
- }
- polynomial multTerm(polynomial A, float val, int exp)
- {
- int i;
- polynomial C;
- zeroP(&C);
- i = A.degree;
- while(i>=0)
- {
- printf("i = %d\n", i);
- addTerm(&C, coef(A, A.degree) * val, A.degree + exp);
- delTerm(&A, A.degree);
- i--;
- }
- return C;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement