c언어 for문 초기식을 배열로 정의했을 때 질문입니다.

조회수 510회
void dice(int count) {
    int i;

    if (n < count) {
        print(n);
        return;
    }

    for (i = arr[count - 1]; i <= 6; i++) {
        arr[count] = i;
        dice(count + 1);
    }
}

입니다.

이 코드를 보면 count는 메인 함수에서 dice(1)로 매개변수를 줬습니다.

이 코드를 보면 이해가 안 가는 게, iarr(count-1)로 줬으면 iarr 0번지부터 1씩 값을 증가시켜 저장한다는 뜻인가요? 이해가 안 갑니다 ㅠㅜㅠ

1 답변

  • for (i = arr[count - 1]; i <= 6; i++) {
    

    arrcount-1번째 요소를 i에 할당하고 다음 반복부터는 i를 7이 될 때까지 1씩 증가시킨다는 의미입니다.


    추가 질문이 달려서 답변 수정합니다:

    제가 이해를 못 했습니다.. i는 arr[count-1]로 초기화 시키고 i를 증가한다는 말을 잘 이해하지 못 하겠습니다.. 저는 for문을 할 때 i=0 or i=num; or i=num-1 이런 형태만 보아서요. 배열로 i의 값을 초기화 시키는데 i를 증가해서 배열에 넣는 것도 아니고.. 그럼 배열로 초기화를 시켜 줬을 때 i에 담긴 값은 변함이 없고 반복문만 6번 돈다는 말씀이신 건가요?

    for (i = arr[count - 1]; i <= 6; i++) {
        // 반복문
    }
    
    int idx = arr[count - 1];
    for (i = idx; i <= 6; i++) {
        // 반복문
    }
    

    위 두 코드의 실행 결과는 동일합니다.

    iarr[count-1]로 초기화한다는 말은, 말 그대로 iarr 배열의 count-1번째에 있는 값을 할당한다... 입니다.

    증감식i++이 있기 때문에 당연히 i는 매 루프의 끝에서 1씩 증가하구요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)