#include<stdio.h>
#include<string.h>
using namespace std;
int sum, row, col;
char a[100][101];
int q[100][2];
int x[4] = {1, -1, 0, 0};
int y[4] = {0, 0, 1, -1};
bool mark[100][100];
void bfs(int a1, int b1)
{
int head, tail, rows, cols, i;
head = 0;
tail = 1;
q[1][0] = a1;
q[1][1] = b1;
do
{
head++;
for(i=0;i<4;i++)
{
rows = q[head][0] + x[i];
cols = q[head][1] + y[i];
if(rows>=0&&rows<=row&&cols>=0&&cols<=col)
if(mark[rows][cols]&&a[rows][cols]>='0'&&a[rows][cols]<='9')
{
tail++;
mark[rows][cols] = 0;
q[tail][0] = rows;
q[tail][1] = cols;
}
}
}while(head<tail);
}
int main()
{
int i, j, sum;
scanf("%d%d", &row, &col);
memset(mark,1,sizeof(mark));
sum = 0;
for(i=0;i<row;i++)
scanf("%s", a[i]);
for(i=0;i<row;i++)
for(j=0;j<col;j++)
if(a[i][j]>='1'&&a[i][j]<='9'&&mark[i][j])
{
mark[i][j] = 0;
bfs(i, j);
sum++;
}
printf("%d", sum);
return 0;
}
有细胞输出1,没细胞输出0.咋回事儿?