이해가 잘 안가요 ㅠㅠ
텐시
질문 제목 : 왜 a의 내용이 다 0으로 출력이 되는 지 이해가 가질 않습니다ㅠㅠ
질문 내용 : #include stdio.h
#define max_degree 101
#define max(a,b) (((ab)?(a):(b)))
typedef struct{
int degree;
float coef[max_degree];
}polynomial;
polynomial poly_add1(polynomial a, polynomial b);
void main()
{
int i=0;
polynomial a={5,{10,0,0,0,6,3 }};
polynomial b={9,{10,0,2,0,0,6,4,3,1,3}};
polynomial c=poly_add1(a,b);
// printf(계수 : %d\n,c.degree);
//
// for(i=0;i=c.degree;i++)
// {
// printf(%d\n,c.coef[i]);
// }
}
polynomial poly_add1(polynomial a, polynomial b)
{
//printf(%d,a.degree);
int amax_degree=a.degree;
int bmax_degree=b.degree;
polynomial c;
int i=0;
c.degree=max(amax_degree,bmax_degree);
//a의 최고차수가 b보다 큼
//a의 최고차수의 계수를 c로 옮김
printf(계수 : %d\n,a.degree);
for(i=0;i=a.degree;i++)
{
printf(%d\n,a.coef[i]);
}
// 왜 a의 내용이 다 0으로 출력이 되는 지 이해가 가질 않습니다ㅠㅠfor(i=0;i=c.degree;i++)
{
if(amax_degreebmax_degree)
{
c.coef[amax_degree]=a.coef[amax_degree];
amax_degree--;
}
else if(bmax_degreeamax_degree)
{
printf(baxegee %d,bmax_degree);
printf(%d \n,b.coef[bmax_degree]);
c.coef[bmax_degree]=b.coef[bmax_degree];
//printf(%d \n 맥스디그리 %d \n,c.coef[bmax_degree],bmax_degree); //
//printf(\n 맥스디그리 %d \n,bmax_degree); //위 에랑 밑에랑 출력 결과가 다른데 왜 그런거죠??
//printf(%d \n,c.coef[bmax_degree]);
//printf(%d \n,b.coef[bmax_degree]);
bmax_degree--;
}
else
{
c.coef[amax_degree]=a.coef[amax_degree]+b.coef[bmax_degree];
//printf(%d\n 맥스디그리 %d \n,c.coef[bmax_degree],bmax_degree);
amax_degree--;
bmax_degree--;
}
}
printf(계수 : %d\n,c.degree);
for(i=0;i=c.degree;i++)
{
printf(%d\n,c.coef[i]);
}
return c;
}
-
솔관
아 감사합니다. ㅋ
-
라라
float이나 double 형은 %f로 출력하셔야 합니다. 정수와 실수의 표현방식은 다르기 때문입니다.
하지만 정수부분만 출력하길 원하신다면 %.f로 하시면 됩니다.