다항식의 모든 차수에 대한 계수값을 배열에 저장하는 방법..
새길
소스는 아래처럼 코딩이 되어있는데 문제는
메인함수에서 출력을 하여야합니다.
여기서 poly_add1(a,b);함수에서 연산된결과를
c에 저장하게 되는데요 c는 계수라고 생각 됩니다.
계수 차수 를 모두 출력하는 방법을 알려주셨으면합니다.
#include stdio.h
#define MAX(a,b) (((a)(b))?(a):(b))
#define MAX_DEGREE 101
typedef struct { // 다항식 구조체 타입 선언
int degree;// 다항식의 차수
float coef[MAX_DEGREE];// 다항식의 계수
} polynomial;
//
polynomial poly_add1(polynomial A, polynomial B) // C=A+B
{
polynomial C;// 결과 다항식
int Apos=0, Bpos=0, Cpos=0;// 배열 인덱스 변수
int degree_a=A.degree;
int degree_b=B.degree;
C.degree = MAX(A.degree, B.degree); // 결과 다항식 차수
while( Apos=A.degree && Bpos=B.degree ){
if( degree_a degree_b ){
C.coef[Cpos++]= A.coef[Apos++];
degree_a--;
}
else if( degree_a == degree_b ){
C.coef[Cpos++]=A.coef[Apos++]+B.coef[Bpos++];
degree_a--; degree_b--;
}
else {
C.coef[Cpos++]= B.coef[Bpos++];
degree_b--;
}
}
return C;
}
// 주함수
main()
{
polynomial a = { 5, {3, 6, 0, 0, 0, 10} };
polynomial b = { 4, {7, 0, 5, 0, 1} };
polynomial c;
c = poly_add1(a,b);
}
-
Addictive
수다님 굳이 배열을 전부 리턴받을필요없이 널값이 아닐때까지만 포문을 돌리면 돼는데요
문제는 출력을해야지요 ``; -
영미
요롷게 하시는게 좀 낫구요.... float 배열 100 짜리를 리턴하구 받는거... 켁... 너무하세욜...
계수 100개 다 찍나요?
printf(\%d\\t\ , c.dgree) ;
for ( i = 0 ; i MAX_DEGREE /* 찍어야 할갯수 */ ; i++ ) {
printf(\%f\\t\ , c.coef[i]) ;
printf(\\\n\) ;
이렇게 하시면... -
조은
int poly_add1(polynomial A, polynomial B, polynomial * C ) // C=A+B
{
// polynomial C; // 결과 다항식
int Apos=0, Bpos=0, Cpos=0; // 배열 인덱스 변수
int degree_a=A.degree;
int degree_b=B.degree;
C-degree = MAX(A.degree, B.degree); // 결과 다항식 차수
while( Ap