확인해본 결과 3가지 문제점이 있었습니다.
첫번째는 int num = sc.nextInt(); 입니다.num 변수의 의미는 최댓값을 비교하기 위함일텐데, 이럴 경우에는 num = 0; 으로 초기화 하시는 것이 좋을 것 같습니다.
(문제의 조건에서 9개의 숫자 외에는 입력하라는 조건이 없었습니다.)
두번째는 while문의 조건입니다. 문제의 조건에는 9번까지 출력하라고 했는데, i를 0부터가 아닌, 1로 시작하셨습니다. 좋은 시도였으나,
while( i < 9)라는 의미는 1, 2, 3, 4, 5, 6, 7, 8 까지 반복 한다는 것을 의미합니다. 따라서 8번만 반복이 됩니다.
세번째는 i의 증감연산입니다.
이때 i의 역할은 증감 연산자의 역할도 있지만, 최댓값의 위치를 저장하는 용도로도 사용됩니다. 그 부분은 잘하셨으나, i는 최댓값의 위치를 저장하기 전에 i를 증가시킵니다.
예를들어 1번째 반복문에서 if문을 진행하기 전에 있는 i로 인해 i는 2가 되고, if문이 진행되었기때문에 조건문 안에서의 i는 2가 됩니다.
아래에 제 코드를 첨부합니다. 이해가 되지 않는 것이 있다면 답글주세요..!
hmnit2 4년 전
이게 제 코드인데 왜 안되는 거죠..?