我想知道如何在多维数组(2D)中将搜索范围扩大到一次只能超过一个位置。具体来说,我试图查看坐标(X,Y)以及上方,下方和原始位置的两侧。
ex)我正在寻找一个整数值“0”。如果我在2D数组的任何给定行或列中搜索,我还需要在周围位置搜索。
答案 0 :(得分:0)
使用for循环搜索2D数组中的周围环境:
for(int x=(x1-1); x<=(x1+1); x++) //Check on all 8 directions
for(int y=(y1-1); y<=(y1+1); y++)
if(x!=-1 && y!=-1 && x!=height && y!=width) //Check to ensure you are within bounds
//do whatever..
//e.g: if(array[x][y] == 0); count++;
x1
和y1
是您周围中心的坐标。
在if语句中,您可以添加更多检查,例如检查坐标x!=x1 && y!= y1
您可能想要使用一长串8个if-else语句来检查所有方向,但这不是必要的(并且容易出错)。