#include <iostream>
#include <cstring>
/*输入正整数n, 输出将1~n*n顺时针排列矩阵*/
using namespace std;
void DisplayMatrix(int *A, int n);
int main()
{
int *A ;
int n;
cin >> n;
A = new int [n*n];
memset (A, 0, n*n*sizeof (int));
enum DIRECTION {DOWN = 0, LEFT, UP, RIGHT} dir = DOWN;
int row, col, k;
row = 0; col = n - 1;
for ( k = 1; k <= n*n; k++) {
A [row*n+col] = k;
switch (dir) {
case DOWN :
if (row < n-1 && A [(row+1)*n+col] == 0) {
++row;
} else {
--col; dir = LEFT;
}
break;
case LEFT :
if (col > 0 && A [row*n+col-1] == 0) {
--col;
} else {
--row; dir = UP;
}
break;
case UP :
if (ro
C++输入正整数,输出1-n*n顺时针排列矩阵之动态分配
最新推荐文章于 2023-01-04 20:24:03 发布