请问一下,这个蓝桥杯上的题我这个代码为什么不对 题号602 名称迷宫
#include <bits/stdc++.h>
using namespace std;
char a[35][55];
bool v[35][55]={0};//0未走
int dx[]={1,0,0,-1};
int dy[]={0,-1,1,0};
char t[]={'D','L','R','U'};
struct point{
char x;
char y;
string s;
};
queue<point>r;
int main()
{
// 请在此输入您的代码
for(int i=1;i<=30;i++)
cin>>a[i];
point start;
start.x='1';
start.y='1';
start.s=" ";
v[1][1]=1;
r.push(start);
while(!r.empty()){
if(r.front().x==30&&r.front().y==50){
cout<<r.front().s;
break;
}
for(int i=0;i<=3;i++){
int x=r.front().x+dx[i];
int y=r.front().y+dy[i];
if(x<1||y<1||x>30||y>50)continue;
if(a[x][y]=='0'&&v[x][y]==0){
point temp=r.front();
temp.s+=t[i];
r.push(temp);
v[x][y]=1;
}
r.pop();
}
}
return 0;
}
bool v[35][55]={0};//0未走
这样写,只有第一个元素是0,其余的还是随机值
需要用 memset 清空下。