【问题】这个代码怎么错了呀?

#include<bits/stdc++.h>
using namespace std;
int n,m,a[110][110];
int cnt=0,c=0;
void dfs(int x,int y)
{
if(x<1||x>n||y<1||y>m) return;
if(a[x][y]==0)return;
a[x][y]=0;
cnt++;
if(a[x][y+1]==1)dfs(x,y+1);
if(a[x+1][y]==1)dfs(x+1,y);
if(a[x][y-1]==1)dfs(x,y-1);
if(a[x-1][y]==1)dfs(x-1,y);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(cnt>c)
{
c=cnt;
}
if(a[i][j]=1)
{
cnt=0;
dfs(i,j);
}
if(cnt>c)
{
c=cnt;
}
}
}
cout<<c;
}

第二个for int i=0改成 1,if(a[i][j]=1)改成if(a[i][j]==1)