#include void main(){int a[16][16],i,j,k,p,n;p=1;while(p==1){printf("Enter n(n=1~15):\n");scanf("%d",&n);if((n!=0)&&(nn)){i+=2;j-=1;}else {if(in) j=1;}if(a[j]==0)a[j]=k;else{i+=2;j-=1;a[j]=k;}}for(i=1;i#include const int max = 20;int a[max][max];int main(){
int n, i, j, row, col; printf("Enter n:\n");
scanf("%d", &n);
for (i = 0; i < n; i++)
memset(a, 0, n * sizeof(a[0][0]));
j = 1;
row = 0;
col = n/2;
do
{
if (a[row][col] != 0)
{
row += 2;
col -= 1;
row = (row + n)%n;
col = (col + n)%n;
}
a[row][col] = j++;
row -= 1;
col += 1;
row = (row + n)%n;
col = (col + n)%n;
} while (j <= n*n);
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
printf("%4d", a[j]);
printf("\n");
}} |