原题链接 来自洛谷https://www.luogu.com.cn/problem/P2670
#include <bits/stdc++.h>
using namespace std;
int num[110][110] = {0};
int main()
{
int i, j, t;
char c;
int n, m;
scanf("%d%d", &n, &m); getchar();
for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
{
scanf("%c", &c);
if (c == '*')
{
num[i-1][j-1] += 1;
num[i-1][j ] += 1;
num[i-1][j+1] += 1;
num[i ][j-1] += 1;
num[i ][j ] += 10;
num[i ][j+1] += 1;
num[i+1][j-1] += 1;
num[i+1][j ] += 1;
num[i+1][j+1] += 1;
}
}
getchar();
}
for (i = 1; i <= n; i++)
{
for (j = 1; j <= m; j++)
{
if (num[i][j]>=10) printf ("*");
else printf ("%d", num[i][j]);
}
printf ("\n");
}
return 0;
}