수정해야할 부분이 어디일가요?ㅡㅜ

KimSuMin Reply 7 years 25 weeks ago
자료구조 다항식덧셈뺄셈에서 값을 출력하는 부분 코드를 만들고 있는데 예를 들어서 0 8 이렇게 답이 나오면 앞에 0 부분은 생략하고 정수가 나오는 부분부터 출력하고 싶어서 polynomial poly_print(polynomial p) { int j; int k=0; for (j = 0; j <= p.degree; j++) { if (p.coef[j] != 0) { j = k; break; } else printf("0"); } for(j=k;j<=p.degree;j++) printf("%d ", p.coef[j]); printf("\n"); } 이렇게 코드를 짰는데 k가 처음 for문을 나오면 다시 0으로 리셋되잖아요. 그래서 이 k를 0으로 리셋이 되지 않고 0이 아닌 정수값을 만난 degree로 받을 수 있는 방법이 있나요?ㅜ
withcs1 Reply 7 years 25 weeks ago
k는 리셋되지 않습니다. 만약에 j에 대해서 물어본거라면 j값은 p.degree보다 1 큰값이 저장되어 있을겁니다. k값에 coef가 0이아닌 첫번째 인덱스를 저장하고싶어하시는거 같은데요 j= k 하시면 j값에 k값이 저장됩니다. 반대로 해주셔야해요. else문에서 0을 출력하시는 이유가 계산한 값이 0일경우 0을 출력하기 위함인거 같은데요 계수가 0이 아닐경우 무조건 0을 출력하게 되므로 for문 밖에서 조건문을 사용하셔야 할겁니당