길이가 4x4인 int형 2차원 배열을 오른쪽 방향으로 90도 회전시키는 프로그램을 작성하는 문제가 있는데

분명 제대로 작성한 것 같은데 실행해보면 배열이 왼쪽 방향으로 90도가 돌아감. 이유를 모르겠음....


-------------------------------------------------------------------


#include <stdio.h>

void Rotateto(int (*ptr)[4]);

int main(void)
{
int arr[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int i, j;

for(i=0 ; i<4 ; i++)
{
for(j=0 ; j<4 ; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
printf("\n");
Rotateto(arr);
printf("\n");
Rotateto(arr);
printf("\n");
Rotateto(arr);
printf("\n");
Rotateto(arr);
printf("\n");

return 0;
}

void Rotateto(int (*ptr)[4])
{
int i, j;
int jjab[4][4];

for(i=0 ; i<4 ; i++)
{
for(j=0 ; j<4 ; j++)
{
jjab[i][j] = ptr[i][j];
}
}

for(i=0 ; i<4 ; i++)
{
for(j=0 ; j<4 ; j++)
{
ptr[i][j] = jjab[j][3-i];
}
}

for(i=0 ; i<4 ; i++)
{
for(j=0 ; j<4 ; j++)
{
printf("%d ", ptr[i][j]);
}
printf("\n");
}
}

-----------------------------------------------------------------


여기서ptr[i][j] = jjab[j][3-i]를 
ptr[i][j] = jjab[3-j][i] 로 고치면 제대로 오른쪽 방향으로 돌아가는데

배열에 있는 숫자 "1"을 예를 들면 오른쪽으로 회전할때
(0,0) -> (0,3) -> (3,3) -> (3,0) -> (0,0)
이렇게 돌아가니깐 

ptr[i][j] = jjab[j][3-i] 라고 써야 오른쪽으로 돌아가는 것 아닌가요?....