题解
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");
    }
}
这里空空如也


有帮助,赞一个