#include<bits/stdc++.h>
#define N 2
#define INF N*N
#define io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const char CAN='-';
const char DONTCAN='#';
int startx,starty,endx,endy;
int n,m;
char mp[N][N];
int cnt;
void search(int x,int y,int qx,int qy){
cout<<cnt<<"\n";
if((x==endx)&&(y==endy)) return;
if(cnt>=INF) return;
cnt++;
int cx,cy;
cx=x+1,cy=y;
if((mp[cx][cy]==CAN)&&((qx!=cx)&&(qy!=cy))) search(cx,cy,x,y);
cx=x-1,cy=y;
if((mp[cx][cy]==CAN)&&((qx!=cx)&&(qy!=cy))) search(cx,cy,x,y);
cx=x,cy=y+1;
if((mp[cx][cy]==CAN)&&((qx!=cx)&&(qy!=cy))) search(cx,cy,x,y);
cx=x,cy=y-1;
if((mp[cx][cy]==CAN)&&((qx!=cx)&&(qy!=cy))) search(cx,cy,x,y);
}
int main(){
io
for(int i=1;i<=N;i++)//这个循环
for(int j=1;j<=N;j++){
mp[i][j]=DONTCAN;
cout<<cnt<<"\n";
}
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>mp[i][j];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)
cout<<mp[i][j]<<' ';
cout<<"\n";
}
cin>>startx>>starty>>endx>>endy;
search(startx,starty,0,0);
cout<<cnt;
return 0;
}
这个循环里没有更改cnt变量,可是输出的结果是
0
35
8995
2302755
2302755
2302755
这变量是咋改的啊???