1.不知道怎么存下来步骤,毕竟二维数组已经要存下来方向。。。所以以前用的0,1已经不适合了。。。
知道别人的提醒才想到同时设置一个int型数组,把走过的标记上
2. 在用了数组后只想到了初始化为0,走过的标记为1,在用step记录下来步数,这样子再找到循环后,却不知道前面走了多少步才是循环的。。。
看了别人的代码觉得很巧妙,走过的每一步不是标记为1,而是标记为step,解决了上述问题,很实用。
3.代码写出来就是有错误,输入格式显然有问题,我是这样子写的:
scanf("%d",&t);
for(i = 0;i < n ;i++)
{
for( j = 0;j < m ;j++)
scanf("%c",&map[i][j]);
}
一直以为scanf会直接忽略空格和\n,可是代码的问题也很明显的出现在这里。。。于是我尝试加了getchar来接受 \n 和 空格 。
scanf("%d",&t);
getchar();
for(i = 0;i < n ;i++)
{
for( j = 0;j < m ;j++)
scanf("%c",&map[i][j]);
getchar();
}
就这样成功了。。。
于是我做了以下尝试
#include<stdio.h>
int main()
{
char c;
scanf("%c",&c); //此处输入回车。。
printf("mm%c",c);
}
结果正如想象的一样,我敲了以下回车,输出mm
到屏幕上。。。。
对scanf可以说有了更深的理解吧,scanf总是这样有着各种各样的意想不到,有人说有很多bug,,确实没有c++的cin 好用,但是竞赛又要速度,学姐建议用scanf,所有研究以下还是有必要的哈!