水题。统计一下周围有几个雷。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std; int n,m;
char s[][];
char ans[][]; bool P(int a,int b)
{
if(a>=&&a<=n-&&b>=&&b<=m-&&s[a][b]=='*') return ;
return ;
}
int f(int a,int b)
{
int sum=;
if(P(a-,b-)) sum++;
if(P(a-,b)) sum++;
if(P(a-,b+)) sum++; if(P(a,b-)) sum++;
if(P(a,b+)) sum++; if(P(a+,b-)) sum++;
if(P(a+,b)) sum++;
if(P(a+,b+)) sum++;
return sum;
} int main()
{
while(~scanf("%d%d",&n,&m))
{
if(n==&&m==) break;
for(int i=;i<n;i++) scanf("%s",s[i]);
for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
if(s[i][j]=='*') ans[i][j]='*';
else ans[i][j]=f(i,j)+'';
}
} for(int i=;i<n;i++)
{
for(int j=;j<m;j++)
{
printf("%c",ans[i][j]);
}
printf("\n");
}
printf("\n");
}
return ;
}