마방진인데요 도와주세요 .. (들여쓰기)
아메
#includestdio.h
void main(void)
{
int n , point , dir , i , j , f ,x , y ;
int magic[19][19];
clrscr();
do
{
printf(원하는 마방진의 크기를 입력하시오?\n);
scanf(%d,&n);
printf(\n);
if (n % 2 == 1 && n = 3 && n = 19)
{
printf(방위를 입력하시오\n);
printf(동 - 1 , 서 - 2, 남 - 3 북 - 4 :);
scanf(%d, &point);
printf(\n);
printf(방향을 결정 하시오\n);
printf(좌대각선 - 1 , 우대각선 - 2 :);
scanf(%d,&dir);
printf(\n);
for(x=0; xn; x++)
{
for(y=0; yn ; y++)
{
magic[x][y]=0;
}
}
if (point == 1)
{
if (dir == 1)
{
i=(n-1)/2 ; j=n-1;
x=i; h=j;
for(f=1 ; f=n*n ; f++)
{
magic[x][y]=f;
i=x; j=y;
x=i-1; y=j+1;
if(x0)
{
x=n-1; y=j+1;
}
if(y=n)
{
x=i-1; y=0;
}
if(x0 && y=n)
{
x=i; y=j-1;
}
if(magic[x][y] != 0)
{
x=i; y=j-1;
}
}
}
else
{
i=(n-1)/2 ; j=n-1;
x=i; y=j;
for(f=1 ; f=n*n ; f++)
{
magic[x][y]=f;
i=x; j=y;
x=i+1; y=j+1;
if(x=y)
{
x=0; y=j+1;
}
if(y=n)
{
SPAN st x=i+1; y=0;
}
if(x=n && y=n)
{
x=i; y=j-1;
}
if(magic[x][y] != 0)
{
x=i; y=j-1;
}
}
}
}
else if (point == 2)
{
if (dir == 1)
{
i=(n-1)/2; j=0;
x=i; y=j;
for(f=1 ; f=n*n ; f++)
{
magic[x][y]=f;
i=x; j=y;
x=i+1; y=j-1;
if(x=n)
{
x=0; y=j-1;
}
if(y0)
{
x=i+1; y=n-1;
}
if(x=n && y0)
{
x=i; y=j+1;
}
if(magic[x][y] != 0)
{
x=i; y=j+1;
}
}
}
else
{
i=(n-1)/2; j=0;
x=i; h=j;
for(f=1 ; f=n*n ; f++)
{
magic[x][y]=f;
i=x; j=y;
x=i-1; y=j-1;
if(x0)
{
x=n-1; y=j-1;
}
if(y0)
{
x=i-1; y=n-1;
}
if(x0 && y0)
{
x=i; y=j-1;
}
if(magic[x][y] != 0)
{
x=i; y=j+1;
}
}
}
}
else if (point == 3)
{
if (dir == 1)
{
i=n-1; j=(n-1)/2;
x=i; y=j;
for(f=1 ; f=n*n ; f++)
{
magic[x][y]=f;
i=x; j=y;
x=i+1; y=j+1;
if(x=n)
{
x=0; y=j+1;
}
if(y=n)
{
x=i+1; y=0;
}
if(x=n && y=n)
{
x=i-1; y=j;
}
if(magic[x][y] != 0)
{
x=i-1; y=j;
}
}
}
else
{
i=n-1; j=(n-1)/2;
&n굴림 x=i; y=j;
for(f=1 ; f=n*n ; f++)
{
magic[x][y]=f;
i=x; j=y;
x=i+1; y=j-1;
if(x=n)
{
x=0; y=j-1;
}
if(x0)
{
x=i+1; y=n-1;
}
if(x=n && y0)
{
x=i-1; y=j;
}
if(magic[x][y] != 0)
{
x=i-1; y=j;
}
}
}
}
else
{
if (dir == 1)
{
i=0; j=(n-1)/2;
x=i; y=j;
for(f=1 ; f=n*n ; f++)
{
magic[x][y]=f;
i=x; j=y;
x=i-1; y=j-1;
if(x0)
{
x=n-1; y=j-1;
}
if(y0)
{
x=i-1; y=n-1;
}
if(x0 && yn)
{
x=i+1; y=j;
}
if(magic[x][y] != 0)
{
x=i+1; y=j;
}
}
}
else
{
i=0; j=(n-1)/2;
x=i; y=j;
for(f=1 ; f=n*n ; f++)
{
magic[x][y]=f;
i=x; j=y;
x=i-1; y=j+1;
if(y0)
{
x=n-1; y=j+1;
}
if(y=n)
{
x=i-1; y=0;
}
if(x0 && y=n)
{
x=i+1; y=j;
}
if(magic[x][y] != 0)
{
x=i+1; y=j;
}
}
}
}
}
else
{
for(x=0 ; xn ; x++)
{
for(y=0 ; yn ; y++)
{
printf(%5d,magic[x][y]);
}
printf(\n);
}
}}
마방진인데요 맞는지 안맞는지 하구요... 그리고 f의 뜻이 먼지 모르겠어요..
그리고 들여쓰기가 안돼있는거 수정점...가르쳐주세요 ^^
-
스콜피온 2024-02-06
감사합니다 ^^
-
리카 2024-02-06
아참 그리고 들여쓰기는 전체를 블럭으로 잡은 다음에 Alt+F8을 눌러보시길 바랍니다.
-
초고리 2024-02-06
맞는지 안 맞는지는 직접 컴파일을 해서 실행을 시켜보시면 되고요,
만약 3 * 3의 마방진을 만든다고 한다면 채워지는 숫자는 1부터 9까지가 됩니다.
f는 1, 2, 3, 4, 5, 6, 7, 8, 9까지 변하게 되어 있네요.