@[流星之愿](/space/show?uid=67493)
首先,函数中少了两个关于x的判断;
secondly,主函数中第2个循环的j应该<=m-1(或者直接<m)。
by 蕙兰居士 @ 2019-06-19 17:29:24
~~对不起没有整理~~
首先,函数中少了两个关于x的判断;
secondly,主函数中第2个循环的j应该<=m-1(或者直接<m)。
by 蕙兰居士 @ 2019-06-19 17:30:01
x要判断啥来着QwQ
by lxzy_ @ 2019-06-19 17:31:29
像这样
```
#include<iostream>
using namespace std;
const int N=1001;
char a[N][N];
int n,m;
int sum;
void solve(int x,int y){
if(a[x][y]!='h')
return ;
if(x-3>=0){
if(a[x-1][y]=='e'&&a[x-2][y]=='h'&&a[x-3][y]=='e')
sum++;
}
if(x+3<=n-1){
if(a[x+1][y]=='e'&&a[x+2][y]=='h'&&a[x+3][y]=='e')
sum++;
}
if(y-3>=0){
if(a[x][y-1]=='e'&&a[x][y-2]=='h'&&a[x][y-3]=='e')
sum++;
}
if(y+3<=m-1){
if(a[x][y+1]=='e'&&a[x][y+2]=='h'&&a[x][y+3]=='e')
sum++;
}
}
int main()
{
cin>>n>>m;
for(int i=0;i<=n-1;i++)
for(int j=0;j<=m-1;j++)
cin>>a[i][j];
for(int i=0;i<=n-1;i++)
for(int j=0;j<=m-1;j++)
solve(i,j);
cout<<sum;
return 0;
}
```
by 蕙兰居士 @ 2019-06-19 17:32:55
(⊙o⊙)哦,还有上下方向啊?
by lxzy_ @ 2019-06-19 17:35:16
知道了,感谢
by lxzy_ @ 2019-06-19 17:35:30
Your welcome!
这是蒟蒻的职责
by 蕙兰居士 @ 2019-06-19 17:36:58
```cpp
#include<iostream>
using namespace std;
const int N=1001;
char a[N][N];
int n,m;
int sum;
void solve(int x,int y)
{
if(a[x][y]!='h')
return ;
if(y+3<=m-1)
if(a[x][y+1]=='e'&&a[x][y+2]=='h'&&a[x][y+3]=='e')
sum++;
if(y-3>=0)
if(a[x][y-1]=='e'&&a[x][y-2]=='h'&&a[x][y-3]=='e')
sum++;
}
int main()
{
cin>>n>>m;
for(int i=0;i<=n-1;i++)
for(int j=0;j<=m-1;j++)
cin>>a[i][j];
for(int i=0;i<=n-1;i++)
for(int j=0;j<=n-1;j++)
solve(i,j);
cout<<sum;
return 0;
}
```
by Cheney @ 2019-08-25 15:59:09