1 #include<stdio.h>
 2 char m[20][20];
 3 int r,c,count;
 4 void cnt(int i,int j)//统计连续黑砖的块数 
 5 {
 6     if(m[i][j]=='#'||(i<0||j<0)||(i>r-1||j>c-1))//边界条件,除去 
 7         return;
 8     m[i][j]='#';//发现了一个新的黑砖,置'#',下次不在访问 
 9     count++;   //count+1
10     cnt(i,j-1);//往左寻找 
11     cnt(i-1,j);//往上寻找 
12     cnt(i,j+1);//往右寻找 
13     cnt(i+1,j);//往下寻找 
14 }
15 int main()
16 {
17     int i,j,x,y;
18     while(scanf("%d%d",&c,&r),r||c){
19         for(count=i=0;i<r;++i){
20             getchar();
21             for(j=0;j<c;++j){
22                 m[i][j]=getchar();
23                 if(m[i][j]=='@'){//查找起始点 
24                     x=i;
25                     y=j;
26                 }
27             }
28         }
29         cnt(x,y);
30         printf("%d\n",count);
31     }
32     return 0;
33 }

相关文章:

  • 2021-03-14
  • 2021-10-12
  • 2018-09-23
  • 2022-01-12
  • 2020-09-30
  • 2018-09-18
  • 2021-04-08
  • 2021-08-15
猜你喜欢
  • 2019-07-12
  • 2021-05-26
  • 2021-09-05
  • 2021-08-03
  • 2021-12-24
  • 2019-08-05
  • 2021-11-26
  • 2019-03-18
相关资源
相似解决方案