외 향 내 에서 N * N 행렬 생 성

1678 단어 leetcode
, N , N=3  1  2  3  8  9  4  7  6  5 , debug, 。 , , 。 #include
void gen_matrix(int n){
	int i, j, tmp, count, arr[n][n];
	i = j = 0; tmp = 1;
	count = 0;
	while(tmp <= n * n){
		while(j < n - count){                        //        
			arr[i][j] = tmp;
			tmp++;
			j++;
		}
		j--;                                        //  j     
		i++;                                        // i      
		while(i < n - count){                       //        
			arr[i][j] = tmp;
			tmp++;
			i++;
		}
		i--;                                       //  i     
		j--;                                       // j      
		while(j >= count){                         //        
			arr[i][j] = tmp;
			tmp++;
			j --;
		}
		j++;                                       //  j     
		i--;                                       // i      
		while(i > count){                          //      
			arr[i][j] = tmp;
			tmp++;
			i--;
		}
		i++;                                      //  i     
		j++;                                      // j      
		count ++;                                 //  +1
	}
	for(i = 0; i < n; i++){
		for(j = 0; j < n; j++)
			printf("%d ", arr[i][j]);
	}
}

int main(void){
	int n, i, j;
	scanf("%d", &n);
	gen_matrix(n);
	return 0;
}



좋은 웹페이지 즐겨찾기