반응형
21. 다음과 같이 배열에 저장하는 프로그램을 작성하라.
#include <stdio.h> int main(void) { //변수 선언부 const int R = 7, C = 7; int ssarray[R][C] = { 0, }; //전부 0으로 초기화 int row = 0, column = 0; int row_Uend = 1, row_Dend = R - 1, column_Lend = 0, column_Rend = C - 1; char direction = 'R'; //배열 초기화 for (int n = 1; n < (R * C) + 1; n++) { switch (direction) { case 'R' : ssarray[row][column] = n; if (column == column_Rend) { column_Rend--; row++; direction = 'D'; break; } if (column != column_Rend) { column++; } break; case 'D' : ssarray[row][column] = n; if (row == row_Dend) { row_Dend--; column--; direction = 'L'; break; } if (row != row_Dend) { row++; } break; case 'L' : ssarray[row][column] = n; if (column == column_Lend) { column_Lend++; row--; direction = 'U'; break; } if (column != column_Lend) { column--; } break; case 'U' : ssarray[row][column] = n; if (row == row_Uend) { row_Uend++; column++; direction = 'R'; break; } if (row != row_Uend) { row--; } break; } } //배열 출력 printf("\n"); printf("\n"); printf("\n"); printf("\n"); for (int i = 0; i < R; i++) { printf("\t"); for (int k = 0; k < C; k++) { printf("%2d ", ssarray[i][k]); } printf("\n"); printf("\n"); } printf("\n"); printf("\n"); printf("\n"); printf("\n"); }
//위 아래 개행문자들은 그냥 출력을 위한 것이니 신경쓰지 말 것.
반응형