C Program to Generate Magic Square

Here's a C program to generate magic square with output. This program uses C concepts like GOTO statement, Modulus in C, Multidimensional Arrays, IF-Else Condition, For loop and Nested Loops.

# include

void main(){

int n, i, j, c, a[9][9] ;

printf("Enter the size of the magic square : ") ;

scanf("%d", &n) ;

if (n % 2 == 0){

printf("\nMagic square is not possible") ;

goto end ;

}

printf("\nThe magic square for %d x %d is :\n\n", n, n) ;

j = (n + 1) / 2 ;

i = 1 ;

for(c = 1 ; c <= n * n ; c++) 

{
a[i][j] = c ;

if(c % n == 0) 
{
 i = (i + 1); 
goto loop ; 


if(i == 1) 

i = n ; 
else
i = i - 1 ;

 if(j == n) 
 j = 1; 
 else 
j = j + 1 ; 

loop : ; 

for (i = 1 ; i <= n ; i++)

for (j = 1 ; j <= n ; j++)

printf("%d\t", a[i][j]) ;
 } 
printf("\n\n") ; 

end : ; 
getchar() ; 
}

Output of above program

Enter the size of the magic square : 3

The magic square for 3 x 3 is :

8   1   6

3   5   7

4   9   2