深搜
2025-10-12 22:27:57
发布于:广东
1阅读
0回复
0点赞
代码的主要功能是:
读取网格的大小 (n 行 m 列) 和一个初始位置 (x,y)
检查该位置的四个相邻方向 (右、下、左、上) 的位置是否在网格范围内
对每个方向,如果相邻位置有效则输出其坐标,否则输出 "NA"
注释清晰说明了变量的含义、方向数组的作用以及坐标有效性的判断逻辑,便于理解代码的执行流程。
#include <bits/stdc++.h>
using namespace std;
// 全局变量定义
int n, m, x, y; // n和m表示网格的行数和列数,x和y表示初始位置坐标
// 方向数组:分别表示右、下、左、上四个方向的坐标变化量
// dx[i]表示x方向的变化,dy[i]表示y方向的变化
int dx[4] = {0, 1, 0, -1}; // x方向:不变、+1(向下)、不变、-1(向上)
int dy[4] = {1, 0, -1, 0}; // y方向:+1(向右)、不变、-1(向左)、不变
int main() {
// 读取输入:网格大小n和m,以及初始位置x和y
cin >> n >> m >> x >> y;
// 遍历四个方向,检查每个方向的相邻位置是否有效
for (int i = 0; i < 4; i++) {
// 计算当前方向的相邻位置坐标
int nx = dx[i] + x; // 新的x坐标
int ny = dy[i] + y; // 新的y坐标
// 检查新坐标是否超出网格范围
// 网格的有效范围是x: 1~n,y: 1~m(假设题目中坐标从1开始)
if (nx <= 0 || ny <= 0 || nx > n || ny > m) {
// 超出范围,输出"NA"表示该方向无有效位置
cout << "NA" << endl;
} else {
// 在有效范围内,输出相邻位置的坐标
cout << nx << " " << ny << endl;
}
}
return 0;
}
这里空空如也





有帮助,赞一个