30pts求调~
查看原帖
30pts求调~
1251905
cao_20115楼主2024/6/9 13:02

Code

#include <cstdio>

int n, m;
int flag[110][110];
char map[110][110];

int main(){
    scanf("%d%d", &n, &m);
    for (int i = 0; i < n; ++i) {
        scanf("%s", map[i]);
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            if (map[i][j] == '*') {
                flag[i][j] = -1;
                continue;
            }
            for (int dx = -1; dx <= 1; ++dx) {
                for (int dy = -1; dy <= 1; ++dy) {
                    if (dx == 0 && dy == 0) continue;
                    int x = i + dx, y = i + dy;
                    if (x >= 0 && x < n && y >= 0 && y < m) {
                        if (map[x][y] == '*') flag[i][j]++;
                    }
                }
            }
        }
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            if (map[i][j] == '*') printf("*");
            else printf("%d", flag[i][j]);
        }
        printf("\n");
    }
}
2024/6/9 13:02
加载中...