解题思路
这道题直接循环遍历处理数组元素即可。
代码
#include <iostream>
using namespace std;
int main()
{
int m, n, a, b, i, j, x, y;
cin >> m >> n >> a >> b;
char c[600][600], d[600][600];
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
cin >> c[i][j];
d[i][j] = c[i][j];
}
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
if (d[i][j] == '1')
{
for (x = i - a; x <= i + a; x++)
{
for (y = j - b; y <= j + b; y++)
{
if (x == i && y == j || x < 0 || y < 0 || x >= m || y >= n)
{
continue;
}
c[x][y] = '1';
}
}
}
}
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
cout << c[i][j];
}
cout << endl;
}
return 0;
}