View Code of Problem 62

#include<stdio.h>
void sweep(int i, int j, char a[][100]) {          
	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') {
					num++;
					sweep(i, j, a);
					
				}
		printf("%d\n", num);
	}
}

Double click to view unformatted code.


Back to problem 62