请你编程求出二维数组中某点的相邻数之和。相邻数是指与该点邻接的 8个元素,若该点在边角位置,则邻接元素相应减少。
下图以 4 行 5 列二维数组 a 为例:a[2][3] 元素的值为 7,其邻接元素8,9,10,5,8,6,8,0 和为 54 。再比如:a[1][0] 元素的值为 6,则其邻元素为 1,2,7,3,4 和为 17 。
1 2 3 4 5
6 7 8 9 10
3 4 5 7 8
2 5 6 8 0
输入格式
第一行输入
4 个整数:h,l,c,r分别代表二维数组的行列值和指定点的行列下标。
接下来输入 h 行 l 列的 int 型二维数组 a。其中 2≤h,l≤10;而 0≤c,r≤9;注意下标值从 0 开始。
输出格式
a[c][r] 的邻接元素之和。
Sample Input
4 5 2 3
1 2 3 4 5
6 7 8 9 10
3 4 5 7 8
2 5 6 8 0
Sample Output
54
Sample Input 2
4 5 1 0
1 2 3 4 5
6 7 8 9 10
3 4 5 7 8
2 5 6 8 0
Sample Output 2
17
#include<bits/stdc++.h>
using namespace std;
int main(){
int h,l,c,r;
cin>>h>>l>>c>>r;
c=c+1;
r=r+1;
int a[11][11]={00},i,j,s;
for(i=1;i<=h;i++)
for(j=1;j<=l;j++)
cin>>a[i][j];
s=a[c-1][r]+a[c+1][r]+a[c][r-1]+a[c][r+1]+a[c-1][r-1]+a[c-1][r+1]+a[c+1][r+1]+a[c+1][r-1];
cout<<s;
return 0;
}
只需定一个二维数组
加加减减即可