题目描述
有一片废弃的农场包含了n行,每行m块土地,每块土地下方埋有一定数量的地雷。一支安全部队为了安全穿过这片农田首先在左上方(第1行的第1块土地)出安插了一个地雷探测装置,该装置可以探测到以其位置为左上方顶点的k1行k2列共k1*k2块矩形土地区域范围内的所有地雷。请问该枚装置可以检测到多少枚地雷?
输入格式
第1行两个整数n和m,分别表示行数和列数。
第2~(n+1)行,每行m个整数Wi,描述了n行m列的土地下方埋藏的地雷数量。
最后一行输入装置可探测的行数k1和列数k2。
n和m<=100,定义一个int w[102][102]的数组存储每个位置上的地雷数量,然后从0-k1,0-k2双层for循环遍历累加即可。
运行结果:
C代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int w[102][102] = { 0 };
int n, m;
int i, j;
int k1, k2;
int sum = 0;
scanf("%d %d", &n, &m); //读取n和m
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
scanf("%d", &w[i][j]);
}
scanf("%d %d", &k1, &k2); //读取k1 、k2
//遍历
for (i = 0; i < k1; i++)
{
for (j = 0; j < k2; j++)
sum += w[i][j];
}
printf("%d", sum);
return 0;
}
C++代码:
#include <iostream>
using namespace std;
int main()
{
int w[102][102] = { 0 };
int n, m;
int i, j;
int k1, k2;
int sum = 0;
cin >>n >>m; //读取n和m
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
cin >>w[i][j];
}
cin >> k1 >> k2; //读取k1 、k2
//遍历
for (i = 0; i < k1; i++)
{
for (j = 0; j < k2; j++)
sum += w[i][j];
}
cout << sum;
return 0;
}