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.

What is Magic Square?A magic square of order n is an arrangement of n^{2}numbers, usually distinct integers, in a square, such that the n numbers in all rows, all columns, and both diagonals sum to the same constant.

Magic Square |

# include <stdio.h> # include <conio.h>

void main() { int n, i, j, c, a[9][9] ; clrscr() ; 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 : ; getch() ; }

**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

plz tell me logic to make magic square.

This program is the logic to generate magic square!! What else do you wanna know?

magic square with even size is also possible......

formula for magic constant i.e. sum of elements in rows, columns and diagonals

is

m=n(n*n+1)/2

where n is the size of matrix

go to wikipedia for more info

plz dont use goto's!! its a hated thing among c programmers.

How to tracing the program pls say

Sir what is the procedure to trace this program

brother i do not claer from this,please kindly clear me

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 : ;

getch() ;

}