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

C/C++ Q/A
[5717] 이거 뭐가 잘못인거죠? 아무리 찾아도.ㅠㅠ 고수님들 부탁좀 드립니다.
foolish21 [] 1847 읽음    2006-06-11 15:17
도통 어디서 잘못이 돼서... 왜 계산을 못하는것인지 알수가 없네요... 지금 이거 가지고 2주를 고민중인데 영알수가 없어서 하다가 하다가 고수님들에게 부탁좀 드립니다... ㅠㅠ
ㅠㅠ 뭐가 잘못됀거죠? 저의 무식이 뼈져리게 느껴집니다..ㅠㅠㅠ

#include<stdio.h>
#include<stdlib.h>


struct listNode{
    int coef;
    int exp;
    struct listNode* link;
    };

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

void main()
{
  
  struct listNode* a;
  struct listNode* b;
  struct listNode* d;
  struct listNode* j;
  struct listNode* k;
  struct listNode* newNode;
 

   int i, n, m;

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

   j = a;
  
   for(i=0; i<n; i++)
   {
       newNode = (listNode *)malloc(sizeof(listNode));
      
       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 = (listNode *)malloc(sizeof(listNode));
   
        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);
}
listNode* polyadd(struct listNode* y, struct listNode* h)
{
   
    int sum;

    struct listNode* c;
    struct listNode* r;
    struct listNode* p;
    struct listNode* 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(struct listNode* poly, int coef, int exp, struct listNode* last)
{
    listNode* newNode; 

    newNode = (listNode *)malloc(sizeof(listNode));
    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(struct listNode* 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 1871 2006/06/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.