문제가 일단...
Enter an integer n and print the following picture (tail-following matrix) using a two dimensional array.
Ex) n=5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
입니다..
그리고 아래는 제가 프로그래밍 한건데,
#include <stdio.h>
int main(void)
{
int i, j=0;
int n=9;
int ab[9][9]={0};
printf("크기가 몇인 tail-following matrix를 만들고 싶니?\n");
scanf("%d", &n);
ab[4][4] = 81;
for(i=3; i<n-3; i++) {
ab[3][i] = 12*n-38+i;
}
for(i=4; i<n-3; i++) {
ab[i][n-4] = 13*n-45+i;
}
for(i=3; i<n-4; i++) {
ab[n-4][i] = 15*n-53-i;
}
for(i=3; i<n-5; i++) {
ab[i+1][3] = 16*n-61-i;
}
for(i=2; i<n-2; i++) {
ab[2][i] = 8*n-17+i;
}
for(i=3; i<n-2; i++) {
ab[i][n-3] = 9*n-22+i;
}
for(i=2; i<n-3; i++) {
ab[n-3][i] = 11*n-28-i;
}
for(i=2; i<n-4; i++) {
ab[i+1][2] = 12*n-34-i;
}
for(i=1; i<n-1; i++) {
ab[1][i] = 4*n-4+i;
}
for(i=2; i<n-1; i++) {
ab[i][n-2] = 5*n-7+i;
}
for(i=1; i<n-2; i++) {
ab[n-2][i] = 7*n-11-i;
}
for(i=1; i<n-3; i++) {
ab[i+1][1] = 8*n-15-i;
}
for(i=0; i<n; i++) {
ab[0][i] = i+1;
}
for(i=1; i<n; i++) {
ab[i][n-1] = n+i;
}
for(i=0; i<n-1; i++) {
ab[n-1][i] = 3*n-2-i;
}
for(i=0; i<n-2; i++) {
ab[i+1][0] = 4*n-4-i;
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
printf("%d ", ab[i][j]);
}
printf("\n");
}
return 0;
}
이런 방법 말고 조금 더 쉬운 방법은 없을까요..?ㅠㅠ
아직 배운게 별로없는 초보 수준에서요..ㅠㅠ
지금 array파트 공부를 하고있고 배운 수준으로는 저렇게 밖에 못하겠는데
혹시 더욱 간단한 방법 있어서 가르쳐 주신다면! 감사하겠습니다..ㅠㅠ
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.