반복문을 사용하여 이차원 배열의 값을 회전시키는 문제 입니다.
문제 : 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함수 실행(윗 반복문)에서 값의 대입을 위한 것 입니다.
이상으로 배열값의 이동 : 반복문, 이차원 배열에 대하여 알아보았습니다.
추천, 링크 많이 많이 눌러주세요~ㅋ
'C언어 과제' 카테고리의 다른 글
달팽이 배열 : 배열의 주소 연산 (0) | 2014.04.02 |
---|---|
20140325 과제 도전 8 2의 n승 구하기, 재귀함수 (0) | 2014.03.25 |
20140324 도전 과제 7 승수 구하기 프로그램, 반복문 (0) | 2014.03.25 |
140324 과제 도전 6 초 입력 시간 구하기 프로그램, 나누기와 나머지 (0) | 2014.03.24 |
20140324 과제 도전 5 소수 출력 프로그램, % 연산자 (0) | 2014.03.24 |