1 #include<stdio.h> 2 #include<stdlib.h> 3 int 4 main(void) 5 { 6 int n,m; 7 int x,y; 8 int **array; 9 int i; 10 int number; 11 int index; 12 13 x=0; 14 y=0; 15 number=1; 16 index=0; 17 printf("Input number:"); 18 scanf("%d",&n); 19 m=n; 20 array=(int **)malloc(n*sizeof(int *)); 21 for(i=0;i<n;i++) 22 array[i]=(int *)malloc(n*sizeof(int)); 23 24 while(n>1){ 25 while(y<m-index-1) 26 { 27 array[x][y]=number; 28 y++; 29 number++; 30 } 31 while(x<m-index-1) 32 { 33 array[x][y]=number; 34 x++; 35 number++; 36 } 37 while(y>index) 38 { 39 array[x][y]=number; 40 y--; 41 number++; 42 } 43 while(x>index) 44 { 45 array[x][y]=number; 46 x--; 47 number++; 48 } 49 x++; 50 y++; 51 index++; 52 n=n-2; 53 } 54 if(n==1) 55 { 56 array[x][y]=number; 57 } 58 int j=0; 59 for(i=0;i<m;i++){ 60 for(j=0;j<m;j++){ 61 if(array[i][j]<10) 62 printf("0"); 63 printf("%d ",array[i][j]); 64 } 65 printf(" "); 66 } 67 return 0; 68 }