求大佬改正错误
我的代码
#include<bits/stdc++.h>
#include<ostream>
using namespace std;
int vis[505][505],n,m;
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};
struct node{
int x,y;
};
void bfs(int x,int y){
queue<node> q;
q.push({x,y});
vis[x][y]=1;
while(!q.empty()){
node now=q.front();
q.pop();
for(int i=0;i<4;i++) {
int xx=now.x+dx[i];
int yy=now.y+dy[i];
if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&vis[xx][yy]==0){
q.push({xx,yy});
vis[xx][yy]=2;
}
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>vis[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(vis[i][j]==0&&(i==1||i==n||j==1||j==n)){
bfs(i,j);
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++) {
if(vis[i][j]==2){
cout<<0<<" ";
}
else if(vis[i][j]==0){
cout<<2<<" ";
}
else{
cout<<1<<" ";
}
}
cout<<endl;
}
return 0;
}