none
간단한 배열 출력 프로그램을 만들었는데 출력이 안되는 이유를 못찾겠습니다 RRS feed

  • 질문

  • #include<stdio.h>

    void main(void)
    {
    int i ;
    int j ;

    int array[36];


    //array 를 초기화 한다
    for (i = 6; i<0; i--)
    {
    for (j = 6; j<0; j--)
    array[j+6*i] = j;
    }

    //array를 2차원배열으로 출력한다
    int(*fp)[6] = (int(*)[6])array;

    for (i = 6; i<0; i--)
    {
    for (j = 6; j<0; j--)
    printf("%2d",fp[i][j]);

    printf("\n");
    }

    }

    이러면 36개가 6*6으로 출력이 될거라고 생각하는데 

    실행을 막상해보면 줄바꿈도 어떤숫자도 나오지않습니다

    어쨰서일까요..

    2017년 12월 28일 목요일 오후 3:17

답변

  • #include<stdio.h>

    void main(void)
    {
    int i ;
    int j ;

    int array[36];


    //array 를 초기화 한다
    for (i = 6; i>0; i--) // i<0 -> i = 6의 조건에 맞지 않음.
    {
    for (j = 6; j>0; j--) // j<0 -> j = 6의 조건에 맞지 않음.

    array[(6 * (i - 1)) + (j - 1)] = j; // j + 6 * i -> invalid array access

    }

    //array를 2차원배열으로 출력한다
    int(*fp)[6] = (int(*)[6])array;

    for (i = 6; i>0; i--) // i<0 -> i = 6의 조건에 맞지 않음.
    {
    for (j = 6; j>0; j--) // j<0 -> j = 6의 조건에 맞지 않음.
    printf("%2d",fp[i - 1][j - 1]); // invalid array access

    printf("\n");
    }

    }
    • 답변으로 표시됨 moondidel 2017년 12월 30일 토요일 오전 7:51
    2017년 12월 29일 금요일 오전 2:32