HDU 1035

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,所有研究以下还是有必要的哈!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值