*병*
개인
판매자 정보
- 학교정보
-
입력된 정보가 없습니다.
- 직장정보
-
입력된 정보가 없습니다.
- 자격증
-
판매지수
-
- 판매중 자료수
- 12개
-
- 전체 판매량
- 41개
-
- 최근 3개월 판매량
- 0개
-
- 자료후기 점수
- 평균B
-
- 자료문의 응답률
- 0%
전체자료 12개
-
-
[C 프로그램] 다항식 덧셈
-
#include#include#include#define IS_FULL(ptr) (!(ptr))#define Max 100#define COMPARE(a,b) ((a>b) ? 1 : (alink)sum = sum + (ptr->coef * pow(x, ptr->expon));//다항식 값 계산printf("%c 다항식의 값은 %d 입니다.n", ch, sum);}poly_pointer padd(poly_pointer a,poly_pointer b) // 두 다항식을 더해주는 함수{poly_pointer front, rear, temp;int sum;rear = (poly_pointer)malloc(sizeof(poly_node));if(IS_FULL(rear)){printf("THE MEMORY IS FULLn");exit(1);}front = rear;while(a && b)switch(COMPARE(a->expon ,b->expon)){case -1:attach(b->coef,b->expon,&rear); b=b->link;break;case 0:sum = a->coef + b->coef;if(sum) attach(sum,a->expon,&rear);a = a->link; b = b->link;break;case 1:attach(a->coef,a->expon,&rear);a = a->link;}for( ; a ; a = a->link) attach(a->coef, a->expon, &rear);for( ; b ; b = b->link) attach(-(b->coef), b->expon, &rear);rear->link = NULL;temp = front; front = front->link; free(temp);return front;}void attach(int coefficient,int exponent,poly_pointer *ptr) //노드의 생성 및 값을 저장{poly_pointer temp;temp = (poly_pointer)malloc(sizeof(poly_node));if(IS_FULL(temp)){printf("THE MEMORY IS FULLn");exit(1);}temp->coef = coefficient;temp->expon = exponent;temp->link = NULL;(*ptr)->link = temp;*ptr = temp;}poly_pointer check(char *str)//지수와 계수를 체크해서 attach함수에 넘겨줌{//지수와 계수는 한자리임을 가정하에 체크poly_pointer rear, temp, front;rear = (poly_pointer)malloc(sizeof(poly_node));front = rear;int coef, expon, i;for(i=0 ; ; i++){//계수 체크를 위한 부분if(str[i] == '-') i++;//처음에 '-' 체크if(str[i] == 'x') coef = 1;//앞에 계수가 없을 때else if(str[i+1] == 'x') {//계수가 있을 경우if(str[i-1] == '-' ) {//계수가 '-'일때coef = -1 * (str[i] - '0');i++;}else {coef = str[i] - '0';i++;}}else if(str[i+1] == '