More actions
imported>jediweon No edit summary |
imported>asd123 No edit summary |
||
| Line 20: | Line 20: | ||
* 달팽이를 출력하는 부분은 꼭 함수로 만들 것. | * 달팽이를 출력하는 부분은 꼭 함수로 만들 것. | ||
== 제출 내용 == | |||
=== 임기찬 === | |||
#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; | |||
} | |||
---- | ---- | ||
[[새싹교실/2014]] [[새싹교실/2014/배반]] | [[새싹교실/2014]] [[새싹교실/2014/배반]] | ||
Revision as of 15:23, 12 May 2014
개요
내용
- 포인터 --오세상에올것이왔어--
- 망했다고 합니다. 이해하기 너무 힘든 듯.
- 하지만 이번 주가 끝이 아니라고 합니다.후후후후후후후
과제
캡처.PNG Problem? --이 과제를 김승태교수님에게 바칩니다--
- 단, 3~9 말고 3~11
- 이거 하고
- 할 수 있으면 배열을 통한 접근과 포인터를 이용한 접근 둘 다 해볼 것
- 그리고 정수 대신에 주소값을 출력하는 것도 해볼 것
- 이를 통해 주소값이 어떻게 배치되어 있는 지를 알 수 있음
- 달팽이를 출력하는 부분은 꼭 함수로 만들 것.
제출 내용
임기찬
#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;
}