[자료구조] 다항식을 더하는 프로그램과 Horner의 방법
- 최초 등록일
- 2004.11.15
- 최종 저작일
- 2004.11
- 8페이지/ 한컴오피스
- 가격 1,000원
소개글
다항식을 더하는 프로그램과 Horner의 방법이 들어 있습니다.
컴파일 실행환경
비주얼 C++에서 컴파일 해서 실행시켰습니다.
본문내용
while(coef != 0)
{
a = append(a, coef, exp);
scanf("%d %d", &coef, &exp);
}
scanf("%d %d", &coef, &exp);
while(coef != 0)
{
b = append(b, coef, exp);
scanf("%d %d", &coef, &exp);
}
입력을 받을 때 계수가 0을 입력받을 때 까지 a값을 저장 시키고 0을 받으면 그뒤는 b의 값을 입력 받습니다. 그리고 0을 다시 입력 받으면, 프로그램이 계속 실행됩니다.
char compare(int x, int y)
{
if(x==y)
return('=');
else if(x>y)
return('>');
else
return('<');
}
switch(compare(p->exp, q->exp))
x,y은 p->exp, q->exp를 뜻입니다. 그러므로, a의 지수와 b의 지수를 뜻하게 됩니다.
a와 b를 더할려면, 우선적으로 같은 지수끼리 묶어주어야 계산이 가능하기 때문입니다.
프로그램 소스를 보면 x와 y가 같으면 더해서 c 값에 넣어주고,
p가 크면, p값만 c에 넣고 q가 크면 q값만 c에 넣게 됩니다.
while(p && q) 은 p와 q의 값이 모두 소진할때까지 계속 루틴을 반복하게 됩니다.
writelist(a);
writelist(b);
c=padd(a,b);
writelist(c);
void writelist(POLY* ptr)
{
if(ptr)
{
printf("\n%d %d", ptr->coef, ptr->exp);
writelist(ptr->next);
}
}
a,b,c의 값을 출력하게 됩니다.
그래서 처음입력 받은 값이 출력되고, 이어서 c의 값이 출력하게 되는 것입니다.
참고 자료
없음