kevin8565   1년 전

최솟값이 계속 0으로 뜨는데 오류가 뭘까요?

pill27211   1년 전

(문제 태그가 빠졌습니다.)

최솟값이 0으로 뜨는 이유는, 15행 반복문의 조건식 때문입니다.(j <= N -> j < N)

각각의 입력 값들은 arr[0], arr[1], ... arr[14]에 저장 되는데 (아시다시피 인덱스가 0부터 시작)

N은 (1, 2,... 15)이기 때문 이지요.(반복문의 마지막 사이클에서 마지막 입력된 값의 다음 인덱스를 참조하게 됨. 이 때 8행에 의해서 0으로 초기화 돼있기 때문에 최솟값이 최종적으로 0이 되는 것입니다.) 

또한 N이 15일 때 할당된 공간을 넘어서는 참조가 (arr[15]) 일어나게 되기 때문에 주의해 주셔야 합니다.

chhs2131   1년 전

현재코드에서 음수를 넣으면 정상적으로 min값이 갱신됩니다.  (양수의 경우 정상적으로 갱신이 안됨)

그 이유는 15번째 줄에서 for문에서 조건을 j <= N 으로 주어 사용자 입력이 아닌 초기값 0 이 들어있는 값까지 비교를 하기 때문입니다.

15번째 줄에 조건을 수정하고 한번 테스트해보세요.

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