c언어 행렬..
연블랙
2023.04.01
안녕하세요 다름이 아니라 과제를 푸는데 좀 어려움이 있어서요..1 2 3 45 6 7 89 10 11 1213 14 15 16이렇게 출력하고 오른쪽으로90도 회전한 것을 출력해야 하는데요..13 9 5 11410 621511 7 316 12 8 4 이렇게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( %3d , arr[i][j]);
printf(\n);
}여기까지는 문제가 없는데
for( i = 0 ; i 4 ; i++)
for ( j = 0 ; j 4 ; j++)
arr[i][j] = arr[3-j][i] ;
이렇게 하면 겹치는 부분이 생기더라구요.. ㅠ예를 들면i=0 j=0일때arr[0][0] = arr[3][0]이고i=0 j= 3일 때arr[0][3] = arr[0][0] 에서 맨 처음 행렬값(arr[0][0] = 1) 이 나와야하는데arr[0][3] = arr[0][0] = 13이 나와서요..13 9 5 131410 10 91511 10 516 5 9 13이렇게 나오네요.위 방법 말고 어떻게 할 방법 없을까요??