题解
2023-08-27 09:30:12
发布于:广东
7阅读
0回复
0点赞
#include <stdio.h>
#include <iostream>
using namespace std;
const int maxn = 110;
int main()
{
int Flag[maxn][maxn] = { 0 };
int dx[8] = { 1,1,0,-1,-1,-1,0,1 };
int dy[8] = { 0,1,1,1,0,-1,-1,-1 };
int m, n;
cin >> m >> n;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
char temp;
cin >> temp;
if (temp == '*')
{
Flag[i][j] = -1;
for (int k = 0; k < 8; k++)
{
int nowX = i + dx[k];
int nowY = j + dy[k];
if (nowX >= 0 && nowX < m && nowY >= 0 && nowY < n && Flag[nowX][nowY] != -1)
{
Flag[nowX][nowY]++;
}
}
}
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (Flag[i][j] == -1)
{
printf("*");
}
else
{
printf("%d", Flag[i][j]);
}
}
printf("\n");
}
}
这里空空如也
有帮助,赞一个