/* * C Program to Solve the Magic Squares Puzzle without using * Recursion */ #include void magicsq(int, int [][10]); int main( ) { int size; int a[10][10]; printf("Enter the size: "); scanf("%d", &size); if (size % 2 == 0) { printf("Magic square works for an odd numbered size\n"); } else { magicsq(size, a); } return 0; } void magicsq(int size, int a[][10]) { int sqr = size * size; int i = 0, j = size / 2, k; for (k = 1; k <= sqr; ++k) { a[i][j] = k; i--; j++; if (k % size == 0) { i += 2; --j; } else { if (j == size) { j -= size; } else if (i < 0) { i += size; } } } for (i = 0; i < size; i++) { for (j = 0; j < size; j++) { printf("%d ", a[i][j]); } printf("\n"); } printf("\n"); }