diff --git a/GESP/Test.cpp b/GESP/Test.cpp index bb100b6..ed0b98d 100644 --- a/GESP/Test.cpp +++ b/GESP/Test.cpp @@ -1,10 +1,31 @@ #include using namespace std; +const int N = 110; +int dx[] = {0, 1, 0, -1}; // 右下左上 +int dy[] = {1, 0, -1, 0}; // 右下左上 +int a[N][N]; int main() { - for (int a = INT_MIN; a <= INT_MAX; a++) { - if (a * 2 / 2 != a) - cout << a << endl; + int n = 5, m = n * n; + + int idx = 1; + int x = 0, y = 0, p = 0; + while (idx <= m) { + a[x][y] = idx; // + idx++; // 值在长大 + // p是说方向数组中的游标,它是需要变化的,什么情况下变化呢? + // 1、出界了就变化 + if (x + dx[p] >= n || y + dy[p] >= n || a[x + dx[p]][y + dy[p]]) + p = (p + 1) % 4; + + // 下一个坐标位置 + x += dx[p], y += dy[p]; + } + + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) + printf("%3d", a[i][j]); + cout << endl; } return 0;