#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.