편집 기록

편집 기록
  • 프로필 최진우님의 편집
    날짜2018.08.27

    배열 포인터를 활용한 문제를 풀던중 의문이 들었어요~


    #include<stdio.h>
    
    void rotate(int(*ptr)[4])
    {
        int i,j;
        int temp[4][4];
        for(i=0;i<4;i++)
        {
            for(j=0;j<4;j++)
            {
                temp[i][j]=ptr[3-j][i];
            }
        }
        for(i=0;i<4;i++)
        {
            for(j=0;j<4;j++)
            {
                ptr[i][j]=temp[i][j];
            }
        }
    }
    
    void howmanytimes(int n,void(*ptr1)(int(*ptr2)[4]))
    {
        int i=0;
        int a,b;
        while(i<n)
        {
            ptr1(ptr2);
            for(a=0;a<4;a++)
            {
                for(b=0;b<4;b++)
                {
                    printf("%1d",ptr2[a][b]);
                }
                printf("\n");
            }
            printf("\n");
            i++;
        }
    }
    int main(void)
    {
        int arr[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
        int num=2;
        printf("회전을 몇번 하실건가요?");
        howmanytimes(num,rotate(arr));
        return 0;
    }
    

    4x4 의 int형 2차원 배열에서 입력한 횟수만큼 요소들을 오른쪽 방향으로 90도씩 이동시켜서 그 결과를 각각 출력시키는 프로그램 소스를 짜는건데요, 실행을 하는데 어느 부분들이 틀렸는지 잘 모르겠어요 ㅠㅠ

  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.08.26

    배열 포인터를 활용한 문제를 풀던중 의문이 들었어요~


    #include<stdio.h>
    
    void rotate(int(*ptr)[4])
    {
        int i,j;
        int temp[4][4];
        for(i=0;i<4;i++)
        {
            for(j=0;j<4;j++)
            {
                temp[i][j]=ptr[3-j][i];
            }
        }
        for(i=0;i<4;i++)
        {
            for(j=0;j<4;j++)
            {
                ptr[i][j]=temp[i][j];
            }
        }
    }
    
    void howmanytimes(int n,void(*ptr1)(int(*ptr2)[4]))
    {
        int i=0;
        int a,b;
        while(i<n)
        {
            ptr1(ptr2);
            for(a=0;a<4;a++)
            {
                for(b=0;b<4;b++)
                {
                    printf("%1d",ptr2[a][b]);
                }
                printf("\n");
            }
            printf("\n");
            i++;
        }
    }
    int main(void)
    {
        int arr[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
        int num=2;
        printf("회전을 몇번 하실건가요?");
        howmanytimes(num,rotate(arr));
        return 0;
    }
    

    4x4 의 int형 2차원 배열에서 입력한 횟수만큼 요소들을 오른쪽 방향으로 90도씩 이동시켜서 그 결과를 각각 출력시키는 프로그램 소스를 짜는건데요, 실행을 하는데 어느 부분들이 틀렸는지 잘 모르겠어요 ㅠㅠ