마방진 만드는 소스입니다. 참고해주세요~
#pragma warning(disable:4996)//scanf등등 warning제거용 코드
#include<stdio.h>
#include<stdlib.h>
void make_msquare(int **table, int n);
void display(int **table, int n);
main()
{
int i, j, n;
int **Msquare;
do {
printf("n*n 마방진 홀수 n입력 :");
scanf("%d", &n);
} while (n % 2 == 0);
Msquare = (int**)malloc(sizeof(int)*n);
for (i = 0; i < n; i++)
{
Msquare[i] = (int*)malloc(sizeof(int)*n);
}
make_msquare(Msquare, n);
display(Msquare, n);
free(Msquare);
}
void make_msquare(int **table, int n)
{
int i, a = 0, b = n / 2;
for (i = 1; i <= n*n; i++)
{
table[a][b] = i;
if (i % n == 0)
a++;
else {
if (a > 0)
a--;
else
a = n - 1;
if (b > 0)
b--;
else
b = n - 1;
}
}
}
void display(int **table, int n)
{
int i, j;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
printf("%3d ", table[i][j]);
}
printf("\n");
}
}
'[c언어]' 카테고리의 다른 글
[C언어] 만약에 ~~ if문 익히기 (0) | 2016.11.04 |
---|---|
[C언어] 리눅스 환경에서 c언어로 테트리스 구현하기 (0) | 2016.11.02 |
[c언어] 난수 rand(), srand() 이해하기! (2) | 2016.05.16 |