当前位置: 代码迷 >> 编程 >> 9度教程第90题
  详细解决方案

9度教程第90题

热度:2860   发布时间:2013-02-26 00:00:00.0
九度教程第90题

题目地址:http://jobdu.sinaapp.com/problem.php?cid=1040&pid=89

C语言源码:

#include<stdio.h>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<m&&s[i+1][j]==1)		dfs(i+1,j);	if(j>0&&s[i][j-1]==1)		dfs(i,j-1);	if(j<n&&s[i][j+1]==1)		dfs(i,j+1);	if(i>0&&j>0&&s[i-1][j-1]==1)		dfs(i-1,j-1);	if(i>0&&j<n&&s[i-1][j+1]==1)		dfs(i-1,j+1);	if(i<m&&j>0&&s[i+1][j-1]==1)		dfs(i+1,j-1);	if(i<m&&j<n&&s[i+1][j+1]==1)		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<m;i++)		{			scanf("%s",a);			for(j=0;j<n;j++)				if(a[j]=='*')					s[i][j]=0;				else					s[i][j]=1;		}		num=0;		for(i=0;i<m;i++)		{			for(j=0;j<n;j++)			{				if(s[i][j]==1)				{					num++;					dfs(i,j);				}			}		}		printf("%d\n",num);		scanf("%d %d",&m,&n);	}}


  相关解决方案