四连通
// 根据题目要求定义dir数组
int dirx[4] = {0, -1, 0, 1}, diry[4] = {-1, 0, 1, 0};
for(int i = 0 ; i < 4 ; i ++ )
{
int tx = x + dirx[i];
int ty = y + diry[i];
if(x < 0 || x >= n || y < 0 || y >= m) continue;
// 操作
}
八连通
int x, y; // x, y是中心点
for(int i = x - 1 ; i <= x + 1 ; i ++ )
for(int j = y - 1 ; j <= y + 1 ; j ++ )
{
if(i == x && j == y) continue; // ****
if(x < 0 || x >= n || y < 0 || y >= m) continue;
// 操作
}
八连通 i 不能等于 x+1 吗? j不能等于y+1吗?
谢谢提醒 要得 已改正