View Code of Problem 62

#include<stdio.h>
#include<math.h>
#include<string.h>
void test(int a[][120],int m,int n) 
{
	    a[m][n]=0;	
     if(a[m][n+1]==1)
		 test(a,m,n+1);
	 if(a[m][n-1]==1)
	 	 test(a,m,n-1);
     if(a[m+1][n]==1)
		 test(a,m+1,n);
     if(a[m-1][n]==1)
		 test(a,m-1,n);
     if(a[m+1][n+1]==1)
		 test(a,m+1,n+1);
      if(a[m-1][n-1]==1)
		 test(a,m-1,n-1);
     if(a[m-1][n+1]==1)
		 test(a,m-1,n+1);
     if(a[m+1][n-1]==1)
		 test(a,m+1,n-1);



}
void main()
{
	int i,j,k,n,m,a[120][120],b[1000],t,c,max,sum,temp;
	char q;
while(scanf("%d%d",&m,&n))
{
	getchar();
	if(m==0&&n==0)
		break;
   sum=0;
	for(i=1;i<=m;i++)
	{
	for(j=1;j<=n;j++)
	{
	scanf("%c",&q);
	a[i][j]=q-'0';
	}
	getchar();
	}
	for(i=1;i<=m;i++)
	for(j=1;j<=n;j++)
	{
	if(a[i][j]==1)
	{
		test(a,i,j);
		sum++;
	}
	}
	printf("%d\n",sum);



}

}

Double click to view unformatted code.


Back to problem 62