Alx09

Untitled

May 5th, 2020
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int a[100][100], n, m;
  4. int dx[] = { -1, -1, 0, 1, 1, 1, 0, -1 };
  5. int dy[] = { 0, 1, 1, 1, 0, -1, -1, -1 };
  6.  
  7. void Read_matrix() {
  8. FILE *f;
  9. int i, j;
  10. f = fopen("in.txt", "r");
  11. fscanf(f, "%d%d", &n, &m);
  12. for (i = 0; i < n; i++)
  13. for (j = 0; j < m; j++)
  14. fscanf(f, "%d", &a[i][j]);
  15. fclose(f);
  16. }
  17. void Print() {
  18. int i, j;
  19. for (i = 0; i < n; i++) {
  20. for (j = 0; j < m; j++)
  21. printf("%d ", a[i][j]);
  22. printf("\n");
  23. }
  24. }
  25. int Valid(int i, int j) {
  26. if (i < 0 || j < 0)
  27. return 0;
  28. if (i >= n || j >= m)
  29. return 0;
  30. if (a[i][j] != 1)
  31. return 0;
  32. return 1;
  33. }
  34. void FILL(int i, int j, int c) { // FILL/umplere recursiva
  35. int k;
  36. if (Valid(i, j)) {
  37. a[i][j] = c; //umple
  38. for (k = 0; k < 8; k++)
  39. FILL(i + dx[k], j + dy[k], c);
  40. }
  41. }
  42.  
  43. int main() {
  44. int c, i, j;
  45. Read_matrix();
  46. c = 1;
  47. for(i = 0; i < n;i++)
  48. for(j = 0; j < m;j++)
  49. if(a[i][j] == 1)
  50. FILL(i, j, ++c);
  51. Print();
  52. system("pause");
  53. return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment