What is magic square?
A magic square is an arrangement of integers in a square in such a way that the sum of each horizontal, vertical, and diagonal row is one constant number, the so-called magic constant.
An Odd Magic Square
Code to generate Magic Square
-------------------------------------------------------------------------------
# include <stdio.h>
# include <conio.h>
void main()
{
int n, i, j, c, magic[99][99];
clrscr() ;
printf("Enter the size of the magic square(between 1 to 99 ) : ") ;
scanf("%d", &n) ;
if (n % 2 == 0)
{
c = 1;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++, c++)
magic[i][j] = c;
for(i = 0, j = (n-1); i < n/2; i++, j--)
{
c = magic[i][i];
magic[i][i] = magic[j][j];
magic[j][j] = c;
}
for(i = 0, j = (n-1); i < n/2; i++, j--)
{
c = magic[i][j];
magic[i][j] = magic[j][i];
magic[j][i] = c;
}
for (i = 0 ; i < n ; i++)
{
for (j = 0 ; j < n ; j++)
{
printf("%d\t", magic[i][j]) ;
}
printf("\n\n") ;
}
}
else
{
printf("\nThe magic square for %d x %d is :\n\n", n, n) ;
j = (n + 1) / 2 - 1 ;
i = 0 ;
for(c = 1 ; c <= n * n ; c++)
{
magic[i][j] = c ;
if(c % n == 0)
{
i = (i + 1);
}
else
{
if(i == 0)
i = n-1;
else
i = i - 1 ;
if(j == (n-1))
j = 0;
else
j = j + 1 ;
}
}
for (i = 0 ; i < n ; i++)
{
for (j = 0 ; j < n ; j++)
{
printf("%d\t", magic[i][j]) ;
}
printf("\n\n") ;
}
}
getch() ;
}
-------------------------------------------------------------------------------
No comments:
Post a Comment