#include <stdio.h> #include <stdlib.h> int n, m; void func(char *arr) { char count; for(int i = 0 ; i < n ; i++) { for(int j = 0 ; j < m ; j++) { count = '0'; //是雷就不管 if(arr[i * m + j] == '*') continue; else if(arr[i * m + j] == '.') { //左上为雷 if((i-1 >= 0 && j-1 >= 0) && arr[(i-1)*m+j-1] == '*') count++; //正上方为雷 if(i-1 >= 0 && arr[(i-1)*m+j] == '*') count++; //右上方为雷 if((i-1 >= 0 && j+1 < m) && arr[(i-1)*m+j+1] == '*') count++; //左边为雷 if(j-1 >= 0 && arr[i*m+j-1] == '*') count++; //右边为雷 if(j+1 < m && arr[i*m+j+1] == '*') count++; //左下为雷 if(i+1 < n && j-1 >= 0 && arr[(i+1)*m+j-1] == '*') count++; //正下方为雷 if(i+1 < n && arr[(i+1)*m+j] == '*') count++; //右下方为雷 if(i+1 < n && j+1 < m && arr[(i+1)*m+j+1] == '*') count++; } arr[i*m+j] = count; } } } int main() { scanf("%d %d", &n, &m); getchar(); char arr[n][m]; for (int i = 0 ; i < n ; i++) { for (int j = 0 ; j < m ; j ++) { scanf("%c", &arr[i][j]); } getchar(); //去除换行符 } func(&arr[0][0]); for (int i = 0 ; i < n ; i++) { for (int j = 0 ; j < m ; j ++) { printf("%c",arr[i][j]); } printf("\n"); } return 0; }