Code:#include <stdio.h> #include <stdlib.h> void magicsq(int **ar,int n); int main() { int n; printf("enter size"); scanf("%d",&n); int a[n][n]; int i=0,j=0; for(i=0;i<n;i++) { for(j=0;j<n;j++) { a[i][j]=0; } } magicsq(a,n); return 0; } void magicsq(int **ar,int n) { printf(ar[1][1],"\n"); int i=0,j=0,k=1,previ,prevj; while(k<=(n*n)) { if(k==1) { ar[0][n/2]=k; printf("dd"); } else { printf("\ndd"); previ=i; prevj=j; if((i-1)>=0 && (j-1)>=0) { i=i-1; j=j-1; } else if((i-1)==-1 && (j-1)>=0) { i=n-1; j=j-1; } else if((i-1)==-1 && (j-1)==-1) { i=n-1; j=n-1; } else if((i-1)>=0 && (j-1)==-1) { i=i-1; j=n-1; } if(!ar[i][j]) { ar[i][j]=k; printf("\n",ar[i][j]); } else { if((previ+1)<n) { i=previ+1; ar[i][j]=k; printf("\n",ar[i][j]); } else { i=0; ar[i][j]=k; printf("\n",ar[i][j]); } }} k++; } for(i=0;i<n;i++) { printf("\n"); for(j=0;j<n;j++) { printf("\t",ar[i][j]); } }//printf("dd"); }