第1个回答 2013-12-01
假如二维数组是a[M][N]的话,首先通过角标判断是在中间还是边上还是角上,然后改变角标,遍历就行了。假如要遍历周围格子的那一格为a[i][j]
if (i == 0 & j == 0)
//遍历 a[i+1][j], a[i][j+1], a[i+1][j+1]
else if (i == 0 & j == N-1)
//遍历 a[i][j-1], a[i+1][j], a[i-1][j-1]
else if (i == M-1 & j == 0)
//遍历 a[i-1][j], a[i][j+1], a[i-1][j+1]
else if (i == M-1 & j == N-1)
//遍历 a[i][j-1], a[i-1][j], a[i-1][j-1]
else if (i == 0 & j != 0 & j != N-1)
//遍历 a[i][j-1], a[i][j+1], a[i+1][j], a[i+1][j-1], a[i+1][j+1]
else if (i == M-1 & j != 0 & j != N-1)
//遍历 a[i][j-1], a[i][j+1], a[i-1][j], a[i-1][j-1], a[i-1][j+1]
else if (j == 0 & i != 0 & i != M-1)
//遍历 a[i-1][j], a[i+1][j], a[i][j+1], a[i-1][j+1], a[i+1][j+1]
else if (j == N-1 & i != 0 & i != M-1)
//遍历 a[i-1][j], a[i+1][j], a[i][j-1], a[i-1][j-1], a[i+1][j-1]
else
//遍历 a[i-1][j], a[i+1][j], a[i][j-1], a[i][j+1], a[i-1][j-1], a[i+1][j-1], a[i-1][j+1], a[i+1][j+1]本回答被提问者采纳