// 上下左右四方向 int dx4[] = {-1, 1, 0, 0}; int dy4[] = {0, 0, -1, 1}; // 上下左右、左上右上、左下右下八方向 int dx8[] = {-1, 1, 0, 0, -1, -1, 1, 1}; int dy8[] = {0, 0, -1, 1, -1, 1, -1, 1}; for (int i = 0; i < 8; i++) { int nx = x + dx8[i], ny = y + dy8[i]; if (nx < 1 || nx > n || ny < 1 || ny > m) continue; if (a[nx][ny] == 1) ...... }