#4ac,其他wa
by ⚡GG⚡ @ 2018-02-22 13:30:29
有一行代码窜了
```cpp
#include<bits/stdc++.h>
using namespace std;
char a[110][110]={'?'},d[110][110];
int main()
{
int n,m,x,y,i,j,dql=0,k;
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
cin>>a[i][j];
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if(a[i][j]=='*')
d[i][j]=a[i][j];
else if(a[i][j]=='?')
{
if(a[i-1][j-1]=='*'&&i-1>0&&j-1>0)
dql++;
if(a[i-1][j]=='*'&&i-1>0)
dql++;
if(a[i-1][j+1]=='*'&&i-1>0&&j+1<m)
dql++;
if(a[i][j+1]=='*'&&j+1<m)
dql++;
if(a[i+1][j+1]=='*'&&i+1<n&&j+1<m)
dql++;
if(a[i+1][j]=='*'&&i+1<n)
dql++;
if(a[i+1][j-1]=='*'&&i+1<n&&j-1>m)
dql++;
if(a[i-1][j]=='*'&&i-1>0)
dql++;//←←←←←←←←
} // ↑
d[i][j]=dql+'0';//→→→→→→
dql=0;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<d[i][j];
cout<<endl;
}
return 0;
}
```
by namespace_std @ 2018-02-22 13:36:19
将line 37移至line 35后面就好了
by namespace_std @ 2018-02-22 13:37:06
谢大神
by ⚡GG⚡ @ 2018-02-22 13:40:11
另外Line 34和Line 22有重复
by namespace_std @ 2018-02-22 13:52:07
你的i+1<n,j+1<m,i-1>0,j-1>0就不用了(你已经把整个char数组初始化了,而且在1<=i,j<=100的情况下i+1,j+1,i-1,j-1都一定在0~101之间,一定不会溢出),如果用的话,就一定是<=n而不是<n
by namespace_std @ 2018-02-22 13:58:06
这样就行
```cpp
#include<bits/stdc++.h>
using namespace std;
char a[110][110],d[110][110];
int main()
{
int n,m,x,y,i,j,dql=0,k;
cin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if(a[i][j]=='*')
d[i][j]=a[i][j];
else if(a[i][j]=='?')
{
if(a[i-1][j-1]=='*')
dql++;
if(a[i-1][j]=='*')
dql++;
if(a[i-1][j+1]=='*')
dql++;
if(a[i][j+1]=='*')
dql++;
if(a[i+1][j+1]=='*')
dql++;
if(a[i+1][j]=='*')
dql++;
if(a[i+1][j-1]=='*')
dql++;
if(a[i][j-1]=='*')
dql++;
d[i][j]=dql+'0';
}
dql=0;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<d[i][j];
cout<<endl;
}
return 0;
}
```
by namespace_std @ 2018-02-22 14:00:08
多谢多谢!!
by ⚡GG⚡ @ 2018-02-23 16:51:53
对了,我少了哪组?
by ⚡GG⚡ @ 2018-02-23 16:57:09
是不是
a[i][j-1]
?
by ⚡GG⚡ @ 2018-02-23 16:59:30