变量是咋改的???
  • 板块学术版
  • 楼主YWJ20140130
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/9/20 17:49
  • 上次更新2024/9/20 19:30:05
查看原帖
变量是咋改的???
1241319
YWJ20140130楼主2024/9/20 17:49
#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

这变量是咋改的啊???

2024/9/20 17:49
加载中...