@[hucongwei](/user/1279718) 第七行错了。因为dfs在用的时候在一行,所以把第七行dfs前的int改成void就对了。
by xiaoyunhao @ 2024-02-22 15:04:54
```
#include <bits/stdc++.h>
using namespace std;
int d[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int m,n;
int num=0;
int a[105][105];
void dfs(int x,int y){
a[x][y]=0;
for(int i=0;i<4;i++){
int dx=x+d[i][0];
int dy=y+d[i][1];
if(dx<=n&&dx>=1&&dy<=m&&dy>=1&&a[dx][dy]!=0){
dfs(dx,dy);
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
scanf("%1d",&a[i][j]);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]!=0){
dfs(i,j);
num++;
}
}
}
cout<<num;
}
```
by xiaoyunhao @ 2024-02-22 15:08:18