@[2009niuniu](/user/997261)
```cpp
void f(int fx,int fy);
{
m[fx][fy]=0;
for(int k=0;k<4;k++)
{
if(m[fx+x[k]],m[fy+y[k]]==-1) f([fx+x[k]],m[fy+y[k]]);
}
}
```
多了个分号。
by xiaoshumiao @ 2023-12-17 18:56:55
还是没过
```
#include<bits/stdc++.h>
using namespace std;
int n;
int m[205][105];
int i,j;
string a;
int mymax;
int ans;
int x[4]={1,1,-1,-1};
int y[4]={1,-1,1,-1};
void f(int fx,int fy)
{
m[fx][fy]=0;
for(int k=0;k<4;k++)
{
if(m[fx+x[k]][fy+y[k]]==-1) f([fx+x[k]],[fy+y[k]]);
}
}
int main()
{
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a;
for(j=1;j<=a.length();j++)
{
if(a[j-1]!='*'&&a[j-1]!=' ') m[j][i]=-1;
}
mymax=max(mymax,a.length());
}
for(i=1;i<=mymax;i++)
{
for(j=1;j<=n;j++)
{
if(m[i][j]==-1)
{
ans++;
f(i,j);
}
}
}
cout<<ans;
}
```
@[xiaoshumiao](/user/1008513)
by 2009niuniu @ 2023-12-17 19:01:54
@[2009niuniu](/user/997261)
```cpp
if(m[fx+x[k]][fy+y[k]]==-1) f([fx+x[k]],[fy+y[k]]);
```
```cpp
mymax=max(mymax,a.length());
```
以上两处报错。第二处似乎是 lengh 不能用 max。
by xiaoshumiao @ 2023-12-17 19:06:32
@[xiaoshumiao](/user/1008513) 那用什么
by 2009niuniu @ 2023-12-17 19:11:23
@[2009niuniu](/user/997261) 你可以用一个变量来存,再做 max。
by xiaoshumiao @ 2023-12-17 19:14:46
@[2009niuniu](/user/997261) 提前把length弄成变量。`int len = a.length()`这样,因为a.length()是无符号数mymax不是,max只能比较同样类型的,所以可以将length强转成有符号。
by NFGase @ 2023-12-17 19:14:53