为什么不对
#include <bits/stdc++.h>
using namespace std;
int a[105][105];
int n,m,cnt = 0;
queue <int> qx;
queue <int> qy;
void bfs(int x,int y)
{
int xx[10] = {0,1,-1,0,0};
int yy[10] = {0,0,0,-1,1};
qx.push(1);
qy.push(1);
a[x][y] = 0;
while (!qx.empty())
{
for (int i = 1;i <= 4;i++)
{
int dx = qx.front() + xx[i];
int dy = qy.front() + yy[i];
if (dx >= 1 && dx <= n && dy >= 1 && dy <= m && a[dx][dy] > 0)
{
qx.push(dx);
qy.push(dy);
a[dx][dy] = 0;
}
}
qx.pop();
qy.pop();
}
}
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)
{
cnt++;
bfs(i,j);
}
}
}
cout << cnt;
}