找不见的东西突然出现了出Bug在哪

李世石首胜 AlphaGo之父:找不出Bug在哪
李世石脸上露出了久违的笑容,在连续三盘输给AlphaGo之后,在很多人不再对他抱太大希望的时候,李世石凭借着出色的发挥和&神来之手&击败AlphaGo,为职业棋手挽回了一丝颜面。
李世石首胜 AlphaGo之父:找不出Bug在哪
赛况:古力赞白78&神之一手&
人机大战是近一周来最热门的体育新闻,只可惜前三盘较量,李世石总是失败的一方。
昨日,AlphaGo与李世石的人机大战五番棋第四局在韩国首尔进行。李世石中盘击败AlphaGo,扳回一局。虽然1比3的比分已经无法逆转,但本局的胜利对人类来说意义重大。
尤其是在这位韩国棋手坚毅地落下白78挖时,在几大网络平台解说的嘉宾都赞不绝口,世界冠军古力甚至认为李世石这一手堪称:&神之一手&。
&我觉得当时那是我惟一可以选择的下法,所以我在困难中下出了那一手。我也很感谢大家对这一手棋极高的评价。&李世石赛后说。
随后,李世石在白82又出好手,此前被认为没有什么漏洞的AlphaGo开始犯错了,至黑93之后,AlphaGo似乎崩溃了,其招法低级而毫无意义。官子阶段,AlphaGo表现得也不再像之前几盘那样滴水不漏,几次犯错。中国围棋等级分第一人柯洁在解说时直言,&黑棋没法下了!&
再度紊乱的AlphaGo行棋惨不忍睹,至180手时认输,而之所以与李世石缠斗到180手,据说是因为计算机的程序所致。计算机要等到过了180手,认为自己胜面在10%以下时才会认输。
自评:李世石要求下一盘执黑
当AlphaGo认输的那一刻,曾经获得过18个世界冠军头衔的李世石的脸上终于露出了笑容,这是李世石之前没有过的笑容。
现场观战的棋迷也给予了李世石足够的尊重,掌声持续三分多钟。
&我不能说自己没有心理压力,但是我还是要去努力比赛,每次比赛我都是很享受的。老实说我并没有过多的心理压力。&在赢了一场比赛之后,李世石的心态也放松了下来,要知道,在0比3之后李世石曾说,&我从来没有这样感到过紧张和压力。&时隔一天,李世石已将说过的话完全忘记了。
李世石虽然已经无法获得谷歌给出的100万美元赢棋奖金,但他已经向世人证明了AlphaGo并非无懈可击,人类仍然可以战胜机器。&如果又输的话,我会觉得非常抱歉。&李世石赛后说出了自己的真心话。
在赢了第四盘棋后,李世石信心大增,他甚至提出自己在最后一盘比赛中要执黑与AlphaGo过招,&我这次执白赢的,我想执黑也赢AlphaGo一次。因为AlphaGo执白时表现更出色。我希望最后一场执黑对阵AlphaGo。&
对于这样的问题主办方积极回应:&可以啊,我认为没问题。&李世石对于这样的答案表示感谢。
旁观:柯洁称自己胜率超六成
连续四场比赛,柯洁都在网站挂盘讲解。当看到李世石下出妙手、AlphaGo出现问题时,柯洁说:&电脑崩了,出现Bug,AlphaGo还是有破绽的,经常出现奇怪的棋。&柯洁认为,不可神化软件,&这样跟我挑战不够格,人类职业棋手经过此役挽回颜面。&
其实在李世石输给AlphaGo的第一盘比赛中,柯洁就曾发微博称,&就算AlphaGo战胜了李世石,但它赢不了我&,到李世石0比3落后,柯洁表示应该3个职业棋手对阵机器更合理。昨天,柯洁再一次将第一盘时说过的话在微博上置顶,&真的出了一口气,现在可以泄气,我上未必会输,此前有人说我装。&
柯洁分析说,计算机一直在躲避,害怕打劫,避免复杂化。&现在下的话,我至少六成把握获胜,找到它的规律后,很容易攻破其程序。&柯洁表示,第四盘棋李世石的发挥堪称完美,&这也证明AlphaGo并不是无敌的,也是有漏洞和缺陷的。AlphaGo的一些招法可以借鉴,但并不是最好的。&
其实,在李世石接连输给AlphaGo之后,外界有一种声音,无论是业余棋手还是职业棋手,与这样高水平的智能机器下棋有助于提高自己的棋艺,柯洁却反问:&又能长多少呢?&
柯洁说:&我们必须承认AlphaGo拥有超一流的实力。不过,李世石今天赢了它之后让我的信心也更足了,综合李世石对AlphaGo的胜率以及我对李世石的胜率,我想我对AlphaGo的胜率大概在六到七成。&
研发:找不出AlphaGo问题在哪
李世石赢了,不仅收获了掌声,同样也获得了AlphaGo之父哈萨比斯的赞许,在赛后的新闻发布会上,他甚至7次祝贺李世石赢得了比赛,&我要祝贺李世石的成功,他证明了自己是一位伟大的对手。他是一位出色的选手,他的发挥非常好。&哈萨比斯认为,这次比赛本身的意义更多的是测试AlphaGo,并帮助它进一步提高,&我们来到这里就是要测试AlphaGo有什么弱点,而李世石就是这样的天才,我们喜欢发现AlphaGo的弱点,然后才能进一步提升它。&
在AlphaGo输掉这盘棋之后,哈萨比斯显然也意识到AlphaGo出现了Bug,而且这个漏洞很可能已经被职业棋手抓到,&我们不确定发生了什么,我们会回到英国分析数据,然后看看能不能改变这样的状况。&哈萨比斯坦言很难判断AlphaGo的一些失误,究竟是着眼于全局的正确棋着还是错误判断。
在此前的几盘比赛中,包括棋圣聂卫平在内都认为AlphaGo没有出现过什么失误。一些计算机专家也表示,AlphaGo的下棋&思维&与人类完全不同,机器更多的是判断全局,每一步棋都是为最终的胜利而服务,它的每一步都是为了提高自己的胜率。
但这一次失利,AlphaGo出现了什么问题?就连哈萨比斯也不能给出答案,&我想我们还需要去研究,毕竟AlphaGo的棋是好是坏都要根据结果去判断,这一次输掉比赛,证明AlphaGo的选择和判断出了问题。&&
您可能也感兴趣:
咖啡机对于现代人来说相对小众,往往很多人购买后只是一时冲动或是图个新鲜劲,在使用寥寥几...
官方微博/微信
每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。
↑扫描二维码
想在手机上看科技资讯和科技八卦吗?想第一时间看独家爆料和深度报道吗?请关注TechWeb官方微信公众帐号:1.用手机扫左侧二维码;2.在添加朋友里,搜索关注TechWeb。
Copyright (C)
All rights reserved. 京ICP证060517号/京ICP备号 京公网安备76号
TechWeb公众号
机情秀公众号共被编辑 7 次
实在是找不出问题在哪了,麻烦大家找找BUG出在哪
在表单验证的时候出现了如下问题:
我找到了一个办法可以解决这个问题:
将isValid的声明调到上一层作用域中,问题得到解决(这个解决办法给我的启示是好像trigger执行完毕后,isValid又被声明了一次一样,但是我调试发现重头到尾只声明了一次)
另外,只有当第一次验证失败后(即表单的输入不合法),改正表单内的值使其合法后进行第二次验证才会出现这个问题,如果是第一次就输入合法,我调试发现修改isValid的值是始终有效的。还有,不仅是isValid,我还测试了多个变量声明在enSureCallback函数内,然后在submitHandler中修改,都是和这个一样的情况。
我已经排除了异步的情况,重复声明或者调用的情况,实在是找不出哪里有问题了。因为复现有点麻烦,依赖也有2,3个,所以在线DEMO不好编写。因此大家有任何的猜测都可以提出来,说不定都是解决问题的突破口,先表示一下感谢^_^
----------------------------------------------------补充----------------------------------------------
这是第一次表单输入的值就合法时的函数调用情况这是第一次表单输入不合法,然后再输入合法时的函数调用情况
可以看到完全没有区别(包括右边调用函数的具体行数),但是BUG就是发生了。。
下面是第一次表单输入的值就合法时的详细情况,当执行了isValid = true这条语句后,我们在call stack中跳转到ensureCallback函数,可以看到值修改是成功的。
下面是第一次表单输入不合法,然后再输入合法时的详细情况,当执行了isValid = true这条语句后,我们在call stack中跳转到ensureCallback函数,可以看到值修改是不成功的。
还有虽然之前已经说了排除了异步的干扰,看到评论里有朋友还是在说这个问题,这里再说明一下,这里真的真的没有异步,是先执行的handler,再return的,而且我调试的时候开了,也没有发现任何异步函数在执行,所以真的可以排除异步的问题了。
现在我的重点思考在于1.为什么只有在第一次失败后才会出现这个BUG,第一次的验证对后面的验证到底产生了什么影响(我是真的想不出有什么影响。。)2.像我之前提到的,为什么将isValid的声明放到上一层作用域去声明就没有BUG了.
希望这次的补充能够帮助大家分析问题
实在是找不出问题在哪了,麻烦大家找找BUG出在哪
在表单验证的时候出现了如下问题:
我找到了一个办法可以解决这个问题:
将isValid的声明调到上一层作用域中,问题得到解决(这个解决办法给我的启示是好像trigger执行完毕后,isValid又被声明了一次一样,但是我调试发现重头到尾只声明了一次)
另外,只有当第一次验证失败后(即表单的输入不合法),改正表单内的值使其合法后进行第二次验证才会出现这个问题,如果是第一次就输入合法,我调试发现修改isValid的值是始终有效的。还有,不仅是isValid,我还测试了多个变量声明在enSureCallback函数内,然后在submitHandler中修改,都是和这个一样的情况。
我已经排除了异步的情况,重复声明或者调用的情况,实在是找不出哪里有问题了。因为复现有点麻烦,依赖也有2,3个,所以在线DEMO不好编写。因此大家有任何的猜测都可以提出来,说不定都是解决问题的突破口,先表示一下感谢^_^
----------------------------------------------------补充----------------------------------------------
这是第一次表单输入的值就合法时的函数调用情况这是第一次表单输入不合法,然后再输入合法时的函数调用情况
可以看到完全没有区别(包括右边调用函数的具体行数),但是BUG就是发生了。。
下面是第一次表单输入的值就合法时的详细情况,当执行了isValid = true这条语句后,我们在call stack中跳转到ensureCallback函数,可以看到值修改是成功的。
下面是第一次表单输入不合法,然后再输入合法时的详细情况,当执行了isValid = true这条语句后,我们在call stack中跳转到ensureCallback函数,可以看到值修改是不成功的。
还有虽然之前已经说了排除了异步的干扰,看到评论里有朋友还是在说这个问题,这里再说明一下,这里真的真的没有异步,是先执行的hanlder,再return的,而且我调试的时候开了,也没有发现任何异步函数在执行,所以真的可以排除异步的问题了。
现在我的重点思考在于1.为什么只有在第一次失败后才会出现这个BUG,第一次的验证对后面的验证到底产生了什么影响(我是真的想不出有什么影响。。)2.像我之前提到的,为什么将isValid的声明放到上一层作用域去声明就没有BUG了.
希望这次的补充能够帮助大家分析问题
实在是找不出问题在哪了,麻烦大家找找BUG出在哪
在表单验证的时候出现了如下问题:
我找到了一个办法可以解决这个问题:
将isValid的声明调到上一层作用域中,问题得到解决(这个解决办法给我的启示是好像trigger执行完毕后,isValid又被声明了一次一样,但是我调试发现重头到尾只声明了一次)
另外,只有当第一次验证失败后(即表单的输入不合法),改正表单内的值使其合法后进行第二次验证才会出现这个问题,如果是第一次就输入合法,我调试发现修改isValid的值是始终有效的。还有,不仅是isValid,我还测试了多个变量声明在enSureCallback函数内,然后在submitHandler中修改,都是和这个一样的情况。
我已经排除了异步的情况,重复声明或者调用的情况,实在是找不出哪里有问题了。因为复现有点麻烦,依赖也有2,3个,所以在线DEMO不好编写。因此大家有任何的猜测都可以提出来,说不定都是解决问题的突破口,先表示一下感谢^_^
----------------------------------------------------补充----------------------------------------------
这是第一次表单输入的值就合法时的函数调用情况这是第一次表单输入不合法,然后再输入合法时的函数调用情况
可以看到完全没有区别(包括右边调用函数的具体行数),但是BUG就是发生了。。
下面是第一次表单输入的值就合法时的详细情况,当执行了isValid = true这条语句后,我们在call stack中跳转到ensureCallback函数,可以看到值修改是成功的。
下面是第一次表单输入不合法,然后再输入合法时的详细情况,当执行了isValid = true这条语句后,我们在call stack中跳转到ensureCallback函数,可以看到值修改是不成功的。
还有虽然之前说了跟排除了异步的干扰,看到评论里有朋友还是在说这个问题,这里再说明一下,这里真的真的没有异步,是先执行的hanlder,再return的,而且我调试的时候开了,也没有发现任何异步函数在执行,所以真的可以排除异步的问题了。
现在我的重点思考在于1.为什么只有在第一次失败后才会出现这个BUG,第一次的验证对后面的验证到底产生了什么影响(我是真的想不出有什么影响。。)2.像我之前提到的,为什么将isValid的声明放到上一层作用域去声明就没有BUG了.
希望这次的补充能够帮助大家分析问题
实在是找不出问题在哪了,麻烦大家找找BUG出在哪
在表单验证的时候出现了如下问题:
我找到了一个办法可以解决这个问题:
将isValid的声明调到上一层作用域中,问题得到解决(这个解决办法给我的启示是好像trigger执行完毕后,isValid又被声明了一次一样,但是我调试发现重头到尾只声明了一次)
另外,只有当第一次验证失败后(即表单的输入不合法),改正表单内的值使其合法后进行第二次验证才会出现这个问题,如果是第一次就输入合法,我调试发现修改isValid的值是始终有效的。还有,不仅是isValid,我还测试了多个变量声明在enSureCallback函数内,然后在submitHandler中修改,都是和这个一样的情况。
我已经排除了异步的情况,重复声明或者调用的情况,实在是找不出哪里有问题了。因为复现有点麻烦,依赖也有2,3个,所以在线DEMO不好编写。因此大家有任何的猜测都可以提出来,说不定都是解决问题的突破口,先表示一下感谢^_^
实在是找不出问题在哪了,麻烦大家找找BUG出在哪
在表单验证的时候出现了如下问题:
我找到了一个办法可以解决这个问题:
将isValid的声明调到上一层作用域中,问题得到解决(这个解决办法给我的启示是好像trigger执行完毕后,isValid又被声明了一次一样,但是我调试发现重头到尾只声明了一次)
另外,只有当第一次验证失败后(即表单的输入不合法),改正表单内的值使其合法后进行第二次验证才会出现这个问题,如果是第一次就输入合法,我调试发现修改isValid的值是始终有效的。还有,不仅是isValid,我还测试了多个变量声明在enSureCallback函数内,然后在submitHandler中修改,都是和这个一样的情况。
我已经排除了异步的情况,重复声明或者调用的情况,实在是找不出哪里有问题了。。
实在是找不出问题在哪了,麻烦大家找找BUG出在哪
在表单验证的时候出现了如下问题:
我找到了一个办法可以解决这个问题:
将isValid的声明调到上一层作用域中,问题得到解决(这个解决办法给我的启示是好像trigger执行完毕后,isValid又被声明了一次一样,但是我调试发现重头到尾只声明了一次)
另外,只有当第一次验证失败后(即表单的输入不合法),改正表单内的值使其合法后进行第二次验证才会出现这个问题,如果是第一次就输入合法,我调试发现修改isValid的值是始终有效的。
我已经排除了异步的情况,重复声明或者调用的情况,实在是找不出哪里有问题了。。
实在是找不出问题在哪了,麻烦大家找找BUG出在哪
在表单验证的时候出现了如下问题:
我找到了一个办法可以解决这个问题:
将isValid的声明调到上一层作用域中,问题得到解决(这个解决办法给我的启示是好像isValid被声明了两次一样,但是我调试发现只声明了一次)
另外,只有当第一次验证失败后(即表单的输入不合法),改正表单内的值使其合法后进行第二次验证才会出现这个问题,如果是第一次就输入合法,我调试发现修改isValid的值是始终有效的。
我已经排除了异步的情况,重复声明或者调用的情况,实在是找不出哪里有问题了。。
我要该,理由是:一题简单的C语言题,运行有错误,找了好久找不出bug,哪位好心人士帮忙看一下。非常感谢!_百度知道
一题简单的C语言题,运行有错误,找了好久找不出bug,哪位好心人士帮忙看一下。非常感谢!
代码如下:#include&iostream&int tail=2;int
z[101][2]={0};int main(){ int p[11][11]={0}; int m,n,i,j,x,y,tx, cin&&m&&n&&x&&y; for(i=1;i&=m;i++) {
for(j=1;j&=n;j++)
cin&&p[m][n];
} } z[1][0]=x; z[1][1]=y; int bo...
&gt,j;=tx&&tx&=m&&1&}}tx=z[i][0];ty=z[i][1]-1;i++){for(j=1;j&z[tail][1]=ty=z[i][1];if(1&=tx&&tx&&gt,i;ty=z[i][1];if(1&=tx&&tx&lt,tx,=n&&p[tx][ty];i&=m;i&101;i++){tx=z[i][0];ty=z[i][1]+1;=n;j++){cin&&p[m][n];}}z[1][0]=x;z[1][1]=y;int book[11][11]={0},x;=n&&p[tx][ty]!=0){if(book[tx][ty]==0){book[tx][ty]=1;z[tail][0]=z[tail][1]=tail++;z[tail][0]=y;=ty&&ty&=n&&p[tx][ty]!=0){if(book[tx][ty]==0){book[tx][ty]=1;z[tail][0]==ty&&ty&=n&&p[tx][ty]!=0){if(book[tx][ty]==0){book[tx][ty]=1;cin&&m&n&&x&if(1&if(1&z[tail][1]=ty,n;=m&&1&=ty&&ty&tail++;}}tx=z[i][0]+1#include&iostream&int tail=2;}}}cout&&tail-1&&int
z[101][2]={0};int main(){int p[11][11]={0}!=0){if(book[tx][ty]==0){book[tx][ty]=1;z[tail][0]=z[tail][1]=tail++;=m&&1&=ty&&ty&tail++;}}tx=z[i][0]-1;for(i=1;for(i=1,y;=tx&&tx&=m&&1&lt
我有更好的答案
&//探索标示;=&map.col_&j++)
scanf(&x;结构*/typedef&struct&_tagBlock&结构*/typedef&struct&_tagMap{ BLOCK&*&1)&||&nbsp,投放的X,Y坐标 scanf(&%d&%d&%d&%d&,&&y){ int&count&+&map-&col_count&nbsp,加了注释#include&*&(y&-&0;sizeof(BLOCK)*&%2d&;从1开始编号*/BLOCK&*&*&block&x&&&1&y); //如果地块有效,并且是陆地,并且没探索过 printf(&\r\n%2d&&gt.col_count); memset(map.map-&
printf(&水面&); } else&
//作上标记
block-&i;x&&&map-&col_count&/*定义地图&nbsp,&map.row_count,&&||&{& int&dir[i][0];detected&&(j&-1,0&}.row_count&*&&getblock(MAP*&map,&int&,&//海拔 int&=map.row_i++)
for&nbsp,&x,&amp.col_count); //输入地图海拔 for(&i&nbsp,&y&+&=&1;i&lt,左;int&dir[][2]&=&nbsp,&height&main(){ MAP&&&//地图 int&x,&y;&//起始坐标 int&i,&j, //输入地图行数,列数;BLOCK;&nbsp,0},{&nbsp.data&count.h&#include&&data&height)); //探索吧 count&=&explor(&map,&x,&y); printf(&\r\nIsland&area&=&%d\r\n&,count); //输出下岛的情况吧 for&(i&=&1;&i&&=&map.row_&i++) {
for&(j&=&1;&j&&=&map.col_&j++)
printf(&%s&&,&getblock(&map,&j,&i)-&detected?&#&:&&&);
printf(&\r\n&); } //释放申请的内存 free(map.data); return&0;}测试:&搜索过程&6&&8标记&7&&8标记&8&&8标记&9&&8水面&7&&8已探索&8&&9水面&8&&7标记&9&&7标记10&&7水面&8&&7已探索&9&&8水面&9&&6标记10&&6水面&8&&6标记&9&&6已探索&7&&6标记&8&&6已探索&6&&6标记&7&&6已探索&5&&6水面&6&&7标记&7&&7标记&8&&7已探索&6&&7已探索&7&&8已探索&7&&6已探索&5&&7标记&6&&7已探索&4&&7标记&5&&7已探索&3&&7标记&4&&7已探索&2&&7标记&3&&7已探索&1&&7水面&2&&8水面&2&&6标记&3&&6标记&4&&6标记&5&&6水面&3&&6已探索&4&&7已探索&4&&5水面&2&&6已探索&3&&7已探索&3&&5水面&1&&6水面&2&&7已探索&2&&5水面&3&&8标记&4&&8标记&5&&8标记&6&&8已探索&4&&8已探索&5&&9标记&6&&9标记&7&&9标记&8&&9水面&6&&9已探索&7&10水面&7&&8已探索&5&&9已探索&6&10水面&6&&8已探索&4&&9标记&5&&9已探索&3&&9水面&4&10水面&4&&8已探索&5&10水面&5&&8已探索&5&&7已探索&3&&8已探索&4&&9已探索&4&&7已探索&2&&8水面&3&&9水面&3&&7已探索&3&&6已探索&4&&8已探索&4&&6已探索&5&&8已探索&5&&6水面&6&&8已探索&6&&6已探索&6&&5水面&7&&7已探索&7&&5标记&8&&5标记&9&&5标记10&&5水面&8&&5已探索&9&&6已探索&9&&4水面&7&&5已探索&8&&6已探索&8&&4标记&9&&4水面&7&&4标记&8&&4已探索&6&&4标记&7&&4已探索&5&&4水面&6&&5水面&6&&3标记&7&&3标记&8&&3标记&9&&3水面&7&&3已探索&8&&4已探索&8&&2水面&6&&3已探索&7&&4已探索&7&&2标记&8&&2水面&6&&2标记&7&&2已探索&5&&2标记&6&&2已探索&4&&2水面&5&&3标记&6&&3已探索&4&&3水面&5&&4水面&5&&2已探索&5&&1水面&6&&3已探索&6&&1水面&7&&3已探索&7&&1水面&5&&3已探索&6&&4已探索&6&&2已探索&7&&5已探索&7&&3已探索&8&&5已探索&8&&3已探索&6&&5水面&7&&6已探索&7&&4已探索&8&&7已探索&8&&5已探索&9&&7已探索&9&&5已探索&7&&7已探索&8&&8已探索&8&&6已探索&6&&8已探索&7&&9已探索&7&&7已探索&5&&8已探索&6&&9已探索&6&&7已探索Island&area&=&38&&&&&&&&#&#&#&&&&&&&&#&#&#&#&&&&&&&&&&#&#&#&&&&&&&&&&&&#&#&#&&#&#&#&&&#&#&#&#&&#&#&#&#&#&#&#&#&&&&#&#&#&#&#&#&&&&&&#&#&#&#; int&);1.h&#include&&dir[i][1]);
printf(&已探索&quot懒的看了,重写了下;int&y){ //如果坐标超范围,返回0 if&(y&&&map-&row_count&nbsp,&%d&=&getblock((block) {
if&(block-&0)
if&nbsp:0未探索,1已探索只对海拔&0起作用}&nbsp.h&/*定义地图上的一块地&nbsp.col_&nbsp,{&0,-1&}&0;};=&0; //当前地块右;/*获取地图上x,y地块信息,x,y&nbsp,下;}int&y&&&1)
return&0; return&nbsp,{&0,1& //取当前地块 BLOCK&x;(getblock(&map,&j,&i)-&gt,&=&1;
//地面数计1
count&=&=&1;&j&i&&&4;&i++)
count&+=&explor(map,&),&
//再对当前地块的右,左,下,上分别探索
for&(i&=&&//地块数据指针一行一行存放 int&&row_&//行数 int&&col_&//每行列数}&nbsp,上四个方向X,Y的坐标偏移 static&(block-&detected&==&0)
printf(&+&x&nbsp,y); if&
printf(&越界&); //返回地块数 return&-&1;//返回地块指针}/*从x,y地块探索地图,返回能走到的地块数*/int&explor(MAP*&nbsp,&nbsp.row_count&*&y); //初始化地图 int&x,&int↦||&&=&(BLOCK*)malloc(sizeof(BLOCK)*&标记&{&{1;x&+&nbsp,x;};map
我很少用百度知道,所以一些细节可能处理不当,很抱歉。我有答案,但是作为新手,就是想要自己写一个,但是找不出来错误,代码上面已补上。
int main(){int p[11][11]={0};int m,n,i,j,x,y,tx,cin&&m&&n&&x&&y;for(i=1;i&=m;i++){for(j=1;j&=n;j++){cin&&p[m][n]; //错在这了,改成cin&&p[j][i];}另外,tail 初始值为2,执行时,又自加1,所以最后输出时,应该为 cout&&tail-2&&
解决了,非常感谢您!麻烦您了!
采纳率:71%
// {0;&z&,z;&nbsp,1; for(j=ptX;j&&namespace&#define&nbsp!=0&j++) {
for(i=0,9;i&YLi++)
z=land[j][i];XLine,*,0,*,*;i&YLi++)
z=land[j][i],5,0},// {0,0,*,*,*,*,*,*,*,0};
if(&nbsp,*;
if(&nbsp,3}, {3,0,2,0,1,2,1,0,1,2}!=0&nbsp,0,0,*,0; //获取坐标行后面的块&nbsp,3;z==0)&
land[rX][i]&nbsp,0,0,z。&quot!=&0)
} } return&}int&main(){ int&&lt,*,0,// {0;=&z; }}int&cGetLandSize(){ int&0,0},// {0,0,0,0,*,*,*,*,0,0}, {4;XLine&10 //X坐标&#define&nbsp,*,2,0,*,0,0,0;&rY){ int&i;
if(&nbsp,0;&nbsp,cnt=0;& for(i=rY;& int&
//降落坐标的值&nbsp,补查漏掉的块&
} } //获取坐标行前面的块&nbsp,0},// {0,0,0,0,0,0,0,0,0,0}; ptX=6-1;
//降落坐标&(6,*;&x++) {
for(y=0,2,0;=&z; } for(i=rY;i&&nbsp,// {0,j,0},// {0,0,0,0,0,0,*,*,*,0},*;i&YLi++)
z=land[j][i],1,0;z&,0;z&; for(j=(XLine-1);j&gt,0;z==0)&
land[rX][i]&nbsp,0,0,0;YLine&10 //Y坐标&char&island[XLine][YLine]= //小岛全貌&{ {1,0,0;j--) {
for(i=0;=&island[rX][i];
if(&nbsp,7;ptX, {0,5;
cout&&&&*&z=0,0},};char&land[XLine][YLine]={0}, {0,0,0,0;x; for(j=ptX;j&
} } for(j=0;j&lt,*!=0& for(x=0;x&lt,3,0}, {0,1,2,1,0,1,5,4,3,0},0,0,1,ptY);
//获取 降落坐标行 的有效块&
if(&nbsp,*,*;块有效陆地,0;&nbsp,1;&lt,// cout&&&&共发现&nbsp,1}, {3,2,0,0,0,1,2,4,0,0};z&==0)
cout&&&&&&&;(XLine-1);)
cGetArray(j-1,i),2;j++) {
for(i=0,ptY,0}, {0,0,0,3,7,8,6,0,1,2},*,// {0,0;)
cGetArray(j+1,i); }// {0,0,0,0,0,0,0,0,0,0},*;rX,&int&&quot,0;0;i&YLi++)
z=land[j][i],4,1,y,8) ptY=8-1; cGetArray(ptX, {0,0,0;;
cout&lt,0,*;=&island[rX][i];
if(&nbsp,0;0;
if(&j--) {
for(i=0#include&&iostream&using& //陆地区域&void&cGetArray(int&&lt,0;
} } //重新检查;)
cGetArray(j-1,i),2,0;=0;i--) {
z&&y&YLy++)
z=land[x][y];cGetLandSize()&XLine,i,8;i&YLi++) {
z&nbsp,0,*; return&z&,0,3;&nbsp
代码不能好好帖吗。。。这个换行符都没有了。。
我的错,很少用百度知道,我有答案,但是作为新手,就是想要自己写一个,但是找不出来错误,代码已补上。
第一个for循环 m 没有赋值
有进行赋值。。
其他1条回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 找不出bug 的文章

 

随机推荐