上下左右遍历数组
作者:
就是要AC
,
2021-04-29 11:48:58
,
所有人可见
,
阅读 473
数组上下左右遍历的简便写法
#include <iostream>
using namespace std;
int dx[] = {-1, 0, 1, 0}, dy[] = {0, 1, 0, -1};//上右下左
int f[5][5];
int r, c;
int main(){
int cnt = 1, r = 5, c = 5;
for(int i = 1; i <= r; i ++){
for(int j = 1; j <= c; j ++){
f[i][j] = cnt ++;
}
}
for(int i = 1; i <= r; i ++){
for(int j = 1; j <= c; j ++){
cout << f[i][j] << ' ';
}
cout << endl;
}
int x = 3, y = 3;
for(int i = 0; i < 4; i ++){
int a = x + dx[i], b = y + dy[i];//上下左右四个方向的坐标
if(a >= 1 && a <= r && b >= 1 && b <= c){//判断是否越界
cout << f[a][b] << ' ';
}
}
return 0;
}
样例
矩阵如下:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
结果展示:
8 14 18 12 // a[3][3] = 13, 其上右下左的元素