#include<bits/stdc++.h>
using namespace std;
int main()
{
int n=0,m=0;
cin >> n >> m;
char a[n][m];
for(int i=0;i<n;i++)
{
string sb;
cin >> sb;
for(int j=0;j<m;j++)
{
a[i][j]=sb[j];
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
int count=0;
if(a[i][j]=='*')
{
cout << '*';
}
else
{
if(a[i-1][j-1]=='*'&&i-1>=0&&j-1>=0) count+=1;
if(a[i-1][j]=='*'&&i-1>=0) count+=1;
if(a[i-1][j+1]=='*'&&i-1>=0&&j+1<m) count+=1;
if(a[i][j-1]=='*'&&j-1>=0) count+=1;
if(a[i][j+1]=='*'&&j+1<m) count+=1;
if(a[i+1][j-1]=='*'&&i+1<n&&j-1>=0) count+=1;
if(a[i+1][j]=='*'&&i+1<n) count+=1;
if(a[i+1][j+1]=='*'&&i+1>=0&&j+1<m) count+=1;
cout << count;
}
}
cout << endl;
}
}
第五个测试点,说第100行第89列应是3,读出是4,但是我在本地跑确实是3。感觉代码应该是没有问题了,求大佬看看还有没有问题,感谢。