#include <stdio.h>
#define SizeMax = 100;
int main(){
int i,j,n;
printf("请输入n的值(1-10):");
scanf("%d",&n);
int array[n][n]={};
for(int i=0;i<n;i++){
printf("\n");
for(int j=0;j<n;j++){
//第1列数
if(j==0){
array [i][j]=i+1;
}
//第10行数
if(i==n-1){
array [i][j]=n+j;
}
//第10列数
if(j==n-1){
array [i][j]=3*n-2-i;
}
//第1行数
if(i==0 && j!=0){
array [i][j]=4*n-j-3;
}
//第2列数
if(j==1 && 0<i && i<(n-j)){
array [i][j]=4*(n-1)+i;//此时该数组已经回溯一圈
}
//第9行数
if(i==(n-2) && (n-i)<=j && j<=i ){
array [i][j]=5*n+j-7; }
//第9列数
if(j==(n-2) && i<=j && 0<i){
array [i][j]=7*n-i-11;
}
//第2行数
if(i==1 && i<j && j<(n-i) ){
array [i][j]=8*n-j-14;
}
//第3列数
if(j==2 && j<(n-i) && i>=j){
array [i][j]=8*n-j+i-15;//
}
//第8行数
if(i==(n-3) && (n-i)<=j && j<=i ){
array [i][j]=9*n+j-22;//
}
//第8列数
if(j==(n-3) && i<j && 1<i){
array [i][j]=11*n-i-28; }
//第3行数
if(i==2 && i<j && j<(n-i) ){
array [i][j]=12*n-j-33; }
//第4列数
if(j==3 && j<(n-i) && i>=j){
array [i][j]=12*n-j+i-35;
}
//第7行数
if(i==(n-4) && (n-i)<=j && j<=i ){
array [i][j]=13*n+j-45;
}
//第7列数
if(j==(n-4) && i<j && 2<i){
array [i][j]=15*n-i-53; }
//第4行数
if(i==3 && i<j && j<(n-i) ){
array [i][j]=16*n-j-60;
}
//第5列数
if(j==4 && j<(n-i) && i>=j){
array [i][j]=16*n-j+i-63;
}
//第6行数
if(i==(n-5) && (n-i)<=j && j<=i ){
array [i][j]=14*n+j-46;
}
//第6列数
if(j==(n-5) && i<j && 3<i){
array [i][j]=19*n-i-86;
}
printf("%4d",array[i][j]);
}
}
}
相关文章: