인프런 커뮤니티 질문&답변
씨언어 달팽이 배열 질문입니다.
작성
·
125
0
c언어를 공부중에 배열을
1 2 3
8 9 4
7 6 5 이런식으로 구현하고 싶습니다.
snail이란 함수를 만들어서 구현을 하려합니다.
n,t라는 변수를 만들어서 진행방향을 설정하고싶어 다음과 같이 코드를 짜서
실행시켰더니
1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0
이하 0--------------
이런식으로 출력되네요 .
switch 문의 case1 부터 작동이 안되는것 같은데
구체적으로 코드의 어떤부분이 문제일까요?
```#include
define size 10
void snail(int a[size][size]) {
int i, j;
i = 0; j = 0;
int k = 1;
int n = 0;
int q = 0;
int t = n % 4;
switch (t) { case 0:
for (j = q; j < size && a[i][j]==0; j++) {
a[i][j] += k;
k++;
}
n++;
q++;
break;
case 1:
for (i = q; i < size && a[i][j] == 0; i++) {
a[i][j] += k;
k++;
}n++;
break;
case 2:
for (j = size - q; j >= 0 && a[i][j] == 0; j--) {
a[i][j] += k;
k++;
}n++;
break;
case 3:
for (i = size - q; i >= 0 && a[i][j] == 0; i--) {
a[i][j] += k;
k++;
}n++;
break;
}
}
void set(int a[size][size]) {
int i, j;
for (i = 0; i < size; i++) {
for (j = 0; j < size; j++) {
a[i][j] = 0;
}
}
}
void print(int a[size][size]) {
int i, j;
for (i = 0; i < size; i++) {
for (j = 0; j < size; j++) {
printf("%-3d", a[i][j]);
}
printf("n");
}
}
int main(void) {
int a[size][size];
int *p = a;
print(a);printf("\n\n\n");
set(a);
print(a);
printf("\n\n\n");
snail(a);
print(a);
return 0;
}```
답변




