九度教程第90题

2014-11-24 08:06:25 · 作者: · 浏览: 0
C语言 源码
[cpp]
#include
int s[110][110];
int m,n;
void dfs(int i,int j)
{
s[i][j]=0;
if(i>0&&s[i-1][j]==1)
dfs(i-1,j);
if(i
dfs(i+1,j);
if(j>0&&s[i][j-1]==1)
dfs(i,j-1);
if(j
dfs(i,j+1);
if(i>0&&j>0&&s[i-1][j-1]==1)
dfs(i-1,j-1);
if(i>0&&j
dfs(i-1,j+1);
if(i0&&s[i+1][j-1]==1)
dfs(i+1,j-1);
if(i
dfs(i+1,j+1);
}
int main()
{
int i,j,num;
char a[110];
scanf("%d %d",&m,&n);
while(m)
{
for(i=0;i
{
scanf("%s",a);
for(j=0;j
if(a[j]=='*')
s[i][j]=0;
else
s[i][j]=1;
}
num=0;
for(i=0;i
{
for(j=0;j
{
if(s[i][j]==1)
{
num++;
dfs(i,j);
}
}
}
printf("%d\n",num);
scanf("%d %d",&m,&n);
}
}