게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
홀수마방진 짜는중입니다. 조언하나만 부탁드립니다(ㅂㅅㄱ)
게시물ID : programmer_13335짧은주소 복사하기
작성자 : DJ.A
추천 : 0
조회수 : 776회
댓글수 : 1개
등록시간 : 2015/09/16 23:27:46
옵션
  • 본인삭제금지
#define _CRT_SECURE_NOT_WARNINGS
#include <stdio.h>
int main(void)
{
int i;
int j;
int k;
int t[4][4];
for (i = 0; i <=4; i++)
{
for (j = 0; j <=4; j++)
{
t[i][j] = 0;
}
}
t[0][2] = 1;
for (i = 4, j = 3, k = 2; k <= 25;)
{
t[i][j] = k;
if (i == 0)
{
i = 5;
}
if (j == 4)
{
j = -1;
}
if (t[i - 1][j + 1] != 0)
{
if (i == 5 && j == -1)
{
i = 2;
j = 3;
}

else
{

i += 2;
j--;
}
}
i--, j++, k++;
}
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%2d  ", t[i][j]);
}
printf("\n");
}
rewind(stdin);
getchar();
return 0;
}
c언어로 5x5 홀수마방진을 짜는 도중입니다.
1이 맨윗중간에서 시작하여 오른쪽 윗방향 대각선으로 숫자가 증가하며 이동합니다..
마방진은 진행하다가 그자리에 이미 숫자가 채워져있으면 아래로 회피해야하는데 
잘가다가 21->22 에서 22자리는 0이어야함에도 불구하고 아래로 회피해버리네요..
제가 생각한 알고리즘은 일단 모든 배열을 0으로 초기화하고, 진행중에 다음배열이 0이면 값을 저장,
다음배열이 0이 아니면 아래로회피 이건데요 제가 디버깅도중 21->22에 22자리 배열에 값이 0이어야하는데
0이 아닌걸로 처리가 되어 아래로 회피처리를 해서 그 이후가 다 꼬이는듯 하는데..
게다가 10하고 11은 왜 두번이나 저장되었는지 모르겠습니다..
궁금한건 10하고 11은 왜 두번이나 나왔는지, t[2][4]는 왜 0이 아닌지.. 도와주세용 ㅠㅠ
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호