U E D R , A S I H C RSS

새싹교실/2014/배반/6주차 (rev. 1.5)

새싹교실/2014/배반/6주차


2. 내용

  • 포인터 오세상에올것이왔어
  • 망했다고 합니다. 이해하기 너무 힘든 듯.
  • 하지만 이번 주가 끝이 아니라고 합니다.후후후후후후후

3. 과제

캡처.PNG
[PNG image (16.72 KB)]

Problem?
이 과제를 김승태교수님에게 바칩니다

  • 단, 3~9 말고 3~11
  • 이거 하고
  • 할 수 있으면 배열을 통한 접근과 포인터를 이용한 접근 둘 다 해볼 것
  • 그리고 정수 대신에 주소값을 출력하는 것도 해볼 것
    • 이를 통해 주소값이 어떻게 배치되어 있는 지를 알 수 있음
  • 달팽이를 출력하는 부분은 꼭 함수로 만들 것.

4. 제출 내용


4.1. 임기찬

#include <stdio.h>

void draw(int n, int arr[][11]);		//arr 배열에 n x n 달팽이 모양 입력하는 함수
void print(int n, int arr[][11]);		//arr 배열 출력하는 함수

int main (){
	int n;						//n : 입력받는 숫자
	int z = 0;					 //z : 입력받을때 예외 처리 위해
	int arr[11][11] = {{0,},};			// 11 x 11 배열 생성

	while(z == 0){
		printf("n(3~11) : ");
		z = scanf("%d",&n);

		if(z == 0 || n > 11 || n < 3 ) {
			printf("잘못입력하셨습니다. \n");
			fflush(stdin);
			z = 0;
		}
	}

	draw(n,arr);		//arr 배열에 n x n 달팽이 모양 입력
	print(n,arr);		//arr 배열 출력

	return 0;
}

void draw(int n,int arr[][11]){			//arr 배열에 n x n 달팽이 모양 입력하는 함수
	int i = 0, j = 0, num = 1, k = 0;	//i = 행, j = 열, num = 입력할 숫자

	for(;num <= n * n; k++) {
		for(; j < n - k; j++, num++) {
			arr[i][j] = num;
		}
		for(i++, j--; i < n - k; i++, num++) {
			arr[i][j] = num;
		}
		for(i--, j--; j >= k; j --, num++) {
			arr[i][j] = num;
		}
		for(i--, j++; i > k; i--, num++) {
			arr[i][j] = num;
		}
		i++, j++;
	}
	return;
}

void print(int n,int arr[][11]){		//arr 배열 출력하는 함수
	int i, j;				//i = 행, j = 열

	for(i = 0; i < n; i++){
		for (j = 0; j < n; j++){
			printf("%3d ",arr[i][j]);
		}
		printf("\n");
	}
	return;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:51
Processing time 0.0189 sec