请问加了个for,while就成死循环,如果删掉for,程序执行成功,但是二者根本毫无关系?

ganli123 ganli123 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位大侠,请问我下面这个程序段(迷宫问题)错在什么地方?如果我在声明了数组后面加入一个显示组二维数组的for循环语句,结果后面的while循环就好像是死循环了,如果没有这个for,程序就可以执行成功,前面的for与后面的while根本没有嵌套,毫不相关,这是为什么啊?头疼!

#include <iostream.h>
#include <windows.h>
#include<math.h>
const n=4,m=5;
int entr(int y[n][m], int z)///////////////////////找第1行是否有0元素
{
int entrance_y;
while (z<m)
{
if (y[1][z]==0)
{
entrance_y=z;
return entrance_y;
}
else return 0;
}
}
void main()
{
int y[4][5]={{4,4,4,4,4},{4,0,0,2,4},{4,2,2,2,4},{4,2,2,2,4}};
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
cout<<y[i][j]<<" ";////////////////////////////////////////加了这个循环后就不行了,删掉的话,整个程序执行成功????????????????
cout<<endl;
}
for (int j=1;j<m;j++)
{
int entrance_x=1;
int a=entrance_x;
int b=entr(y,j);
if (b==0)
continue;
int c=b;
//cout<<"The entrance is :"<<"("<<a<<","<<b<<")"<<c<<endl;

while (a<n)//在点(i,j)上探索,不达最后一行时,反复搜索。
{
//处理死点。

if (y[a-1][b]>=2&&y[a][b+1]>=2&&y[a+1][b]>=2&&a>1&&b>1)
{
y[a][b]=3;b--;
}
if (y[a][b-1]==4&&y[a][b+1]==2&&y[a+1][b]==2&&y[a-1][b]==4)//左顶角
{
y[a][b]=3;
}
else if (y[a][b+1]>=2&&y[a+1][b]>=2&&y[a][b-1]>=0)
{
y[a][b]=3;a--;
}
else if (y[a+1][b]>=2&&y[a][b-1]>=2&&y[a-1][b]>=2&&a>1&&b>1)
{
y[a][b]=3;b++;
}
else y[a][b]=1;

//按逆时针先走没走过的点
if (y[a+1][b]==0) a++;
else if (y[a][b+1]==0) b++;
else if (y[a-1][b]==0) a--;
else if (y[a][b-1]==0) b--;

//按顺时针走走过的点
else if (y[a-1][b]==1) a--;
else if (y[a][b+1]==1) b++;
else if (y[a+1][b]==1) a++;
else if (y[a][b-1]==1) b--;

//如果不通,则跳出该循环
if (y[entrance_x][c]==3)
break;
for (int j=1;j<m;j++)
{
if (y[n-1][j]==1)
a=m;
}
}
}
for(j=1;j<5;j++)
{
if (y[n-1][j]!=1)
cout<<"The probability p is small."<<endl;
else
cout<<"p reaches the critical probability pc."<<endl;
}
for (int k=0;k<n;k++)
{
for (j=0;j<m;j++)
cout<<y[k][j]<<" ";
cout<<endl;
}
}

...全文

相关推荐

for循环和while循环的区别和简单应用

for循环和while循环for循环for循环基本概念for循环的例子while循环while循环的概念while循环的例子 for循环 for循环基本概念 for循环可以从一个有序集合里依次把元素拿出来并且赋值给name,比如list,tuple和字符串。 for循环的例子 a = 'adbcd' #这是一个字符串 for name in a: print(name) >>>a d b c d #依次把adbcd打印出来 注意 这是依次不是一起 list =['舔狗','女神','大叔','小鲜肉'] for name in list: print(name)

weixin_38571449

Python 循环语句之 while,for语句详解

Python中有两种循环,分别为:for循环和while循环。 for循环可以遍历任何序列的项目,如一个列表或者一个字符串。while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。

weixin_38551046

Shell实现程序造死循环的几种方法示例

在linux下编程的程序猿都知道shell脚本,就算你不怎么熟悉,也应该听过的吧!那在shell脚本中的死循环该怎么写呢?下面这篇文章就来给大家介绍了关于Shell如何实现让程序造死循环的几种方法,需要的朋友可以参考下。

weixin_38625098

while死循环教训.ipynb

第一次使用while循环,就写出来死循环,这个是一个失败的案例。

Z-Code

一个简单的死循环事例

一个简单的死循环,初学者可以借鉴一下,还凑合。

mark1986_
评论 20
收藏 已收藏
分享
返回顶部
ganli123
C++ 语言 65,214 成员 250,514 内容