UVA 784 - Maze Exploration(简单DFS)

分享了一次在解决编程题时,虽然题目本身简单但因为变量名打错而导致WA的故事。从中学到了细心的重要性,并通过代码实现了解题过程。

题目链接

网速真不好啊,题目挺简单的,变量名打错WA了一次。

 1 #include <stdio.h>
 2 #include <string.h>
 3 char p[101][101];
 4 int a[5] = {0,0,1,-1};
 5 int b[5] = {1,-1,0,0};
 6 int num[101],len;
 7 void dfs(int x,int y)
 8 {
 9     int i;
10     if(p[x][y] == 'X'||p[x][y] == '#')
11     return ;
12     else
13     p[x][y] = '#';
14     for(i = 0;i <= 3;i ++)
15     {
16         if(x+a[i] >= 0&&x+a[i] <= len&& y+b[i]>=0&&y+b[i]<= num[i]-1)
17         {
18             dfs(x+a[i],y+b[i]);
19         }
20     }
21     return ;
22 }
23 int main()
24 {
25    int i,j,k,t,z;
26    scanf("%d%*c",&t);
27    while(t--)
28    {
29        memset(num,0,sizeof(num));
30        z = 1;
31        for(i = 0;;i ++)
32        {
33            gets(p[i]);
34            num[i] = strlen(p[i]);
35            if(strcmp("_____",p[i])==0)
36            break;
37        }
38        len = i;
39        for(i = 0;i <= len&&z;i ++)
40        for(j = 0;j <= num[i]-1;j ++)
41        {
42            if(p[i][j] == '*')
43           {
44               z = 0;
45               break;
46           }
47        }
48        dfs(i,j);
49        for(i = 0;i <= len;i ++)
50        printf("%s\n",p[i]);
51    }
52    return 0;
53 }

 

转载于:https://www.cnblogs.com/naix-x/archive/2012/07/04/2575595.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值