Advertisement
Makarona

Затворање на матрица

Dec 9th, 2018
877
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.61 KB | None | 0 0
  1. /*
  2. Од стандарден влез се вчитуваат броевите M и N, а потоа се вчитува матрица со димензии MxN. Матрицата е составена од бинарни броеви (0 или 1).
  3.  
  4. На влезната матрица да и се изврши затварање, односно да се трансформира на следниот начин:
  5.  
  6. Секој елемент во матрицата којшто е нула, да се постави на 1 ако и само ако мнозинство од сите негови соседи (хоризонтално, вертикално и дијагонално) се единици.
  7.  
  8. Трансформираната матрица да се испечати на стандарден излез.
  9. */
  10. #include <stdio.h>
  11.  
  12. int main()
  13. {
  14.     int m, n, a[100][100];
  15.     scanf("%d %d", &m, &n);
  16.     for(int i=0; i<m; i++)
  17.     {
  18.         for(int j=0; j<n; j++)
  19.         {
  20.             scanf("%d", &a[i][j]);
  21.         }
  22.     }
  23.     for(int i=0; i<m; i++)
  24.     {
  25.         for(int j=0; j<n; j++)
  26.         {
  27.             if(a[i][j]==0)
  28.             {
  29.                 int vkupno=0, zbir=0;
  30.                 if(i>0&&j>0)
  31.                 {
  32.                     vkupno++;
  33.                     zbir+=a[i-1][j-1];
  34.                 }
  35.                 if(i>0)
  36.                 {
  37.                     vkupno++;
  38.                     zbir+=a[i-1][j];
  39.                 }
  40.                 if(i>0 && j<n-1)
  41.                 {
  42.                     vkupno++;
  43.                     zbir+=a[i-1][j+1];
  44.                 }
  45.                 if(j<n-1)
  46.                 {
  47.                     vkupno++;
  48.                     zbir+=a[i][j+1];
  49.                 }
  50.                 if(i<m-1 && j<n-1)
  51.                 {
  52.                     vkupno++;
  53.                     zbir+=a[i+1][j+1];
  54.                 }
  55.                 if(i<m-1)
  56.                     {
  57.                     vkupno++;
  58.                     zbir+=a[i+1][j];
  59.                 }
  60.                 if(i<m-1 && j>0)
  61.                 {
  62.                     vkupno++;
  63.                     zbir+=a[i+1][j-1];
  64.                 }
  65.                 if(j>0)
  66.                     {
  67.                     vkupno++;
  68.                     zbir+=a[i][j-1];
  69.                 }
  70.                if(zbir>vkupno/2)
  71.                 {
  72.                     a[i][j]=1;    
  73.                 }
  74.             }
  75.            
  76.         }
  77.     }
  78.     for(int i=0; i<m; i++)
  79.     {
  80.         for(int j=0; j<n; j++)
  81.         {
  82.             printf("%d ", a[i][j]);
  83.         }
  84.         printf("\n");
  85.     }
  86.    
  87.     return 0;
  88.    
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement