反反复复找了n次bug 最后采用了暴力枚举,虽然笨,但胜在简单易懂 if战神(bushi
include <stdio.h>
include <string.h>
int ans[101][101]={0}; char a[101][101]; int main() {
int m, n;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++)
{
for (int k = 1; k <= m+1; k++)
{
scanf("%c", &a[i][k]);
}
}
for (int i = 1; i <= n; i++)
{
for (int k = 1; k <= m+1; k++)
{
if (a[i + 1][k] == '*')
{
ans[i][k]++;
}
if(a[i - 1][k] == '*' )
{
ans[i][k]++;
}
if(a[i][k - 1] == '*')
{
ans[i][k]++;
}
if(a[i+1][k + 1] == '*')
{
ans[i][k]++;
}
if(a[i+1][k-1]=='*')
{
ans[i][k]++;
}
if(a[i-1][k+1]=='*')
{
ans[i][k]++;
}
if(a[i-1][k-1]=='*')
{
ans[i][k]++;
}
if(a[i][k+1]=='*')
{
ans[i][k]++;
}
}
}
for(int i=1;i<=n;i++)
{
for(int k=2;k<=m+1;k++)
{
if(a[i][k]=='*')
{
printf("*");
}
else
{
printf("%d",ans[i][k]);
}
}
printf("\n");
}
return 0;
}