koseokhyeon   1년 전

score[j] 부분에서 앞 과정에서의 num의 값이 이후 과정에서의 num 값보다 클 경우 앞에서 저장된 배열의 내용이 다 지워지지 않아 문제가 생기는 거 같습니다. 이런 경우 for 루프를 한 번 돌 때마다 앞 과정에서의 score[j]값에 저장했던 내용을 지우고 싶은데 어떻게 해야 할까요?

palilo   1년 전

앞에 꺼 지우는 방법은 그냥 for 문 돌면서 0을 넣어주거나, memset 같은 함수를 써도 됩니다.

근데 진짜 문제는 저게 아니고, class 마다 total이랑 cnt를 0으로 초기화하지 않은 거에요

koseokhyeon   1년 전

어차피 뒤에서 printf를 하고 앞에 돌아가서 num과 score을 다시 입력 받고 그걸 바탕으로 total이랑 cnt에 다시 계산해서 저장한다고 생각을 했는데 초기화 해야 하는 건가요?

아니면 저 코드가 지금 제가 말한 대로 작동 되지 않는 건가요..?

0000000000   1년 전

printf를 하고 앞으로 돌아가긴 하지만 15행으로 돌아가게 됩니다. 그러면 여기서 total과 cnt에는 지난번 loop에서 계산했던 값들이 남아 있는데, 초기화를 해 주지 않고 그냥 해 버리면 지난번 loop에서의 값이 누적되어 값이 다르게 나오게 됩니다.

댓글을 작성하려면 로그인해야 합니다.