열혈 C 도전프로그래밍3 도전1

ROK·2022년 7월 19일
0

도전1

문제

  • 길이 4x4 int형 2차원 배열 선언
  • 요소를 그림 제일 왼쪽처럼 초기화
  • 배열의 모든 요소를 오른쪽으로 90도 돌리는 프로그램 작성

#include <stdio.h>

int turnArray(int (*ptrArr)[4], int len);

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

  int len = sizeof(arr) / sizeof(arr[0]);

  for (i = 0; i < 4; i++)
  {
    printf("%d번째 회전 \n", i + 1);
    turnArray(arr, len);
    printf("\n");
  }

  return 0;
}

int turnArray(int (*ptrArr)[4], int len)
{
  int i, j;
  int temp[len][len];

  for (i = 0; i < len; i++)
  {
    for (j = 0; j < len; j++)
    {
      temp[j][len - 1 - i] = ptrArr[i][j];
    }
  }

  for (i = 0; i < len; i++)
  {
    for (j = 0; j < len; j++)
    {
      ptrArr[i][j] = temp[i][j];
    }
  }

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

  return 0;
}

이 문제를 풀면서...
항상 고질적인 문제가 함수를 선언할때 매개변수에서 타입을 자꾸 틀리는 실수를 반복한다
이는 제대로 이해를 못했다고도 생각할 수 있다.

기초를 제대로 보고 넘어가자...

profile
하루에 집중하자

0개의 댓글