달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

반복문을 사용하여 이차원 배열의 값을 회전시키는 문제 입니다.

문제 : 4*4배열을 선언하여 아래처럼 값을 회전시켜라.

 

 

위 배열을 icount[4][4]로 하여 값을 대입합니다.

밑에 newcount[4][4] 배열은 훗날 (int the future!ㅋ), icount를 회전시킨 값을 넣습니다.

그리고 그 아래 메인에서 반복문이 2개가 보이네요…

첫 번 째 반복문은 icout 배열의 초기상태를 출력하는 용도입니다.

그 아래 반복문은, 회전시킬지 말지를 입력받는 것입니다.

즉, change함수를 부르는 조건입니다.

 

 

인제 문제의 핵심인 change 함수를 보기로 할까요?

말까요?

봅시다! change함수는 한 번 호출될 때 마다 icount 배열의 값이 90도씩 회전하여 대입시키는 데요.

그 구조를 크게 요약하면..icount[i][j]값을 icount[i][j]에 입력하는 것이 아닙니다. 그렇게 되면...값이 덮어써져 버려요.

그래서 그와 같은 icount 배열은 쓰는 용도, newcount 배열은 값을 불러오는 용도가 되는 것이죵. 그럼 더 자세히 봅시다..

우선 위의 첫번 째 반복문..그 안에 있는 반복문 실행식이 핵찜! 입니다.

Icount[j][3-i]. 요 식을 자알~생각해 보세요. 긴 설명은 의미가 없을 것 같네요.

 

그 아래 반복문은 출력 및, newcount 업데이트용 반복문 입니다.

업데이트용? 다음 번 change함수 실행(윗 반복문)에서 값의 대입을 위한 것 입니다.

 

이상으로 배열값의 이동 : 반복문, 이차원 배열에 대하여 알아보았습니다.

추천, 링크 많이 많이 눌러주세요~ㅋ

Posted by C언어 보이
|