#include <stdio.h> void group(int arr[][130],int i,int j) { arr[i][j] = 0; int m,n; for(m = i - 1;m <= i + 1;m++) { for(n = j - 1; n <= j + 1;n++) { if(arr[m][n] == 1) group(arr,m,n); } } } int main(void) { int m,n,i,j,arr[130][130] = {0},s; while(scanf("%d%d",&m,&n) != EOF && m != 0 && n != 0) { int index = 0; for(i = 1;i <= m;i++) { scanf("%d",&s); for(j = n;j >= 1;j--) { arr[i][j] = s % 10; s = s / 10; } } for(i = 1;i <= m;i++) { for(j = 1;j <= n;j++) { printf("%-2d",arr[i][j]); if(arr[i][j] == 1) { group(arr,i,j); index++; } } printf("\n"); } printf("%d\n",index); } return 0; } |
Double click to view unformatted code.