#include<stdio.h> #include<string.h> char a[101][101]; int m,n,q=0; void yiqun(int h,int i) { if(h-1>=0) if(a[h-1][i]=='1') { a[h-1][i]='\0'; yiqun(h-1,i); } if(a[h+1][i]=='1') { a[h+1][i]='\0'; yiqun(h+1,i); } if(h-1>=0) if(a[h-1][i+1]=='1') { a[h-1][i+1]='\0'; yiqun(h-1,i+1); } if(h-1>=0&&i-1>=0) if(a[h-1][i-1]=='1') { a[h-1][i-1]='\0'; yiqun(h-1,i-1); } if(a[h+1][i+1]=='1') { a[h+1][i+1]='\0'; yiqun(h+1,i+1); } if(i-1>=0) if(a[h+1][i-1]=='1') { a[h+1][i-1]='\0'; yiqun(h+1,i-1); } if(a[h][i+1]=='1') { a[h][i+1]='\0'; yiqun(h,i+1); } if(i-1>=0) if(a[h][i-1]=='1') { a[h][i-1]='\0'; yiqun(h,i-1); } } void shuyang(int x) { int i,h=0; for(i=0;i<m*n;i++) { if(h==m) break; if(a[h][i]=='1') { yiqun(h,i); q++; } if(i==n-1) { h++; i=-1; } } } int main() { int i,h=0; while(scanf("%d%d",&m,&n),m!=0&&n!=0) { getchar(); for(i=0;i<m;i++)//输入矩阵 { gets(a[i]); } shuyang(q); printf("%d\n",q); q=h=0; } } |
Double click to view unformatted code.