#include <bits/stdc++.h> using namespace std; void check(char input[][120], int i, int j){ input[i][j] = '0'; if(input[i-1][j-1] == '1') check(input, i-1, j-1); if(input[i-1][j] == '1') check(input, i-1, j); if(input[i-1][j+1] == '1') check(input, i-1, j+1); if(input[i][j-1] == '1') check(input, i, j-1); if(input[i][j+1] == '1') check(input, i, j+1); if(input[i+1][j-1] == '1') check(input, i+1, j-1); if(input[i+1][j] == '1') check(input, i, j); if(input[i+1][j+1] == '1') check(input, i+1, j+1); } int main(){ int n, m; while(cin >> n >> m && (n || m)){ char input[n][m]; int sum = 0; for(int i = 0; i < n; i++) for(int j = 0; j < m; j++) cin >> input[i][j]; for(int i = 0; i < n; i++) for(int j = 0; j < m; j++){ if(input[i][j] == '1'){ check(input, i, j); sum ++; } } cout << sum << endl; } return 0; } /* Main.cc: In function 'int main()': Main.cc:27:27: error: cannot convert 'char (*)[m]' to 'char (*)[120]' check(input, i, j); ^~~~~ Main.cc:4:17: note: initializing argument 1 of 'void check(char (*)[120], int, int)' void check(char input[][120], int i, int j){ ~~~~~^~~~~~~~~~~~ */ |
Double click to view unformatted code.