View Code of Problem 62

#include<stdio.h>
void sweep(int i,int j,char a[][100]){           //遇到一只羊,则遍历消除全部的羊,置为0 
  a[i][j]=0;
  if(a[i-1][j-1]=='1')
	  sweep(i-1,j-1,a);
  if(a[i][j-1]=='1')
	  sweep(i,j-1,a);
  if(a[i+1][j-1]=='1')
	  sweep(i+1,j-1,a);
  if(a[i+1][j]=='1')
	  sweep(i+1,j,a);
  if(a[i+1][j+1]=='1')
	  sweep(i+1,j+1,a);
  if(a[i][j+1]=='1')
	  sweep(i,j+1,a);
  if(a[i-1][j+1]=='1')
	  sweep(i-1,j+1,a);
  if(a[i-1][j]=='1')
	  sweep(i-1,j,a);
  //return 0;
}
int main(){
int m,n,num,i,j;
char a[100][100];
while(scanf("%d%d",&m,&n)!=EOF&&m!=0&&n!=0){
for(i=0;i<m;i++)
		scanf("%s",a[i]);
num=0;
for(i=0;i<m;i++)
  for(j=0;j<n;j++)
	  if(a[i][j]=='1'){
	  sweep(i,j,a);
	  num++;
	  }
	  printf("%d\n",num);
//scanf("%d%d",&m,&n);
}
}

Double click to view unformatted code.


Back to problem 62