#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]);
}
	}
}

C++实现n维数组的循环序列输出

C++实现n维数组的循环序列输出

相关文章: