마방진 만드는 소스입니다. 참고해주세요~

 

 

#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");

 }

}

 

+ Recent posts