Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[5722] Re:이거 뭐가 잘못인거죠? 아무리 찾아도.ㅠㅠ 고수님들 부탁좀 드립니다.
GongZza [gongzza] 1870 읽음    2006-06-13 00:58
#include<stdio.h>
#include<stdlib.h>

typedef struct Node node;  // <= 이부분 만 바꿧습니다.
struct Node{
    int coef;
    int exp;
    node* link;
};

node* polyadd(node* y, node* h);                                 
void appendNode(node* poly, int coef, int exp,node* last);
void printpoly(node* pc);
void sortlist(node* pl);

int main(void)
{
 
  node* a;
  node* b;
  node* d;
  node* j;
  node* k;
  node* newNode;


   int i, n, m;

   printf("\n A 다항식의 항수 : ");
   scanf("%d", &n);

   j = a;
 
   for(i=0; i<n; i++)
   {
       newNode = (node *)malloc(sizeof(node));
     
       printf("\n A 다항식의 계수, 지수 입력 :");
       scanf("%d %d",&newNode->coef, &newNode->exp);
       newNode->link = NULL;
       j->link=newNode;
       j=newNode;

   }

   printf("\n B 다항식의 항수 : ");
   scanf("%d", &m);
 
   k = b;

   for(i=0; i<m; i++)
   {
    newNode = (node *)malloc(sizeof(node));
  
        printf("\n B 다항식의 계수, 지수 입력 :"); 
    scanf("%d %d",&newNode->coef, &newNode->exp);
    newNode->link = NULL;
    k->link=newNode;
    k=newNode;

   }


   printpoly(a);
   printpoly(b);
   d = polyadd(a,b);
   printpoly(d);

    return 0;
}
node* polyadd(node* y, node* h)
{
  
    int sum;

    node* c;
    node* r;
    node* p;
    node* q;

   
    p = y;
    q = h;
    c = r;
    while(p->link != NULL && q->link != NULL)
    {
       if(p->exp < q->exp)
       {
           appendNode(c,q->coef,q->exp,r);
           q = q->link;
       }
       else if(p->exp == q->exp)
       {
      sum = p->coef + q->coef;
          if(sum != 0)
          {
             appendNode(c,sum,p->exp,r);
             p = p->link;
         q = q->link;
          }
       }
   
       else
       {
           appendNode(c,p->coef,p->exp,r);
           p = p->link;
       }
    }
    while(p != NULL)
    {
        appendNode(c,p->coef,p->exp,r);
        p = p->link;
    }
    while(q != NULL)
    {
        appendNode(c,q->coef,q->exp,r);
        q = q->link;
    }   
    r->link=NULL;
    return c;
}


void appendNode(node* poly, int coef, int exp, node* last)
{
    node* newNode;

    newNode = (node *)malloc(sizeof(node));
    newNode->coef = coef;
    newNode->exp = exp;
    newNode->link = NULL;
    if(poly == NULL)
    {
    poly = newNode;
    last = newNode;

    }
    else
    {
       last->link = newNode;
       last = newNode;
    }   
    printf("%d %d", poly->coef, poly->exp);
}


void printpoly(node* pc)
{
   
     while(pc != NULL)
     {
    if(pc->coef != 0)
        {    
             if(pc->coef > 0)
             {
        printf(" +%dx^%d",pc->coef,pc->exp);
             }
         else
         {
        printf(" %dx^%d",pc->coef,pc->exp);
             }
    }
  
        pc = pc->link;
     }
     putchar('\n');
}

이렇게 하니까 실행은 되네요 ㅡㅡ;;;

+ -

관련 글 리스트
5717 이거 뭐가 잘못인거죠? 아무리 찾아도.ㅠㅠ 고수님들 부탁좀 드립니다. foolish21 1847 2006/06/11
5722     Re:이거 뭐가 잘못인거죠? 아무리 찾아도.ㅠㅠ 고수님들 부탁좀 드립니다. GongZza 1870 2006/06/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.