2차원 배열을 가리키는 포인터에 관해서 입니다
딥블랙
질문 제목 :이차원 배열을 가리키는 포인터에 대해서 여쭤보겠습니다 2차원 배열을 임시저장하기 위한 2차원 배열 포인터를 사용하고 싶은데 제대로 저장이 안되는 것 같습니다질문 내용 :
열혈강의 도전프로그래밍 three에 있는 1번째 문제입니다 ㅜ
90도 회전해서 배열 삽입하는거는 맞는거 같은데
출력 시키는 부분에서 어떻게 해야할지를 모르겠습니다
제가 원하는거는 사용자가 회전수를 1~3사이로 입력하면
그에 맞춰 이미 만들어진 1~3회전일때의 배열들을
임시배열에 저장하여 그 배열을 출력시킬려구 합니다
배열포인터 사용법이 익숙치 않아서 그런지
임시저장배열에 다른배열을 삽입하는것을 못하겠습니다 ㅜㅜ
고수님들의 작은 손길(?)을 기다리겠습니다 ㅜㅜ
#includestdio.h
int main(void)
{
int arr[4][4] = {
{1, 2, 3, 4 },
{5, 6, 7, 8 },
{9, 10,11,12},
{13,14,15,16}
};
int arr_1[4][4] = {0,};//1회전일때
int arr_2[4][4] = {0,};//2회전일때
int arr_3[4][4] = {0,};//3회전일때
int (*ptemp)[4] = arr;//임시장소
int i,j,sel;
printf(초기상태\n);
for(i=0;i4;i++)
{
for(j=0;j4;j++)
{
printf(%d , arr[i][j]);
}
printf(\n);
}
for(i=0;i4;i++)
{
for(j=0;j4;j++)
{
arr_1[i][j] = arr[3-j][i];//1회전
arr_2[i][j] = arr[3-i][3-j];//2회전
arr_3[i][j] = arr[j][3-i];//3회전
}
}
printf(원래의 모양에서 몇 회전 시키겠습니까:);
scanf(%d, &sel);
switch(sel){
case 1:
(*ptemp)[4] = arr_1;
break;
case 2:
(*ptemp)[4] = arr_2;
break;
case 3:
(*ptemp)[4] = arr_3;
break;
default:
printf(1~3사이의 회전만 가능합니다.\n);
}
for(i=0;i4;i++)
{
for(j=0;j4;j++)
{
printf(%d , ptemp[i][j]);
}
printf(\n);
}
printf(프로그램이 종료되었습니다.\n);
return 0;
}