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