JStefan

[Laboratoriski] Sosedi

Nov 24th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.28 KB | None | 0 0
  1. /*  Соседи
  2.  
  3.     Oд стандарден влез се вчитува матрица со димензии M x N.
  4.     Да се напише програма која во друга матрица со исти димензии,
  5.     секој елемент ќе го замени со збирот на неговите соседни елементи (по хоризонтала и вертикала) кои се поголеми од самиот тој елемент.
  6.     Соседни елементи на еден елемент во матрицата се елементите кои се наоѓаат горе, долу, лево и десно од самиот елемент
  7.     (ако елементот е дел од првата или последната редица или колона му недостасува некој сосед).
  8.  
  9.     Пример:
  10.     4  2  7  11             0  19  27  0
  11.     3  8  16  1             29  16  0  32
  12.     17  8  9  5             0  40  16  16
  13.     6  14  4  7             31  0  30  0
  14.  
  15.     Во примерот соседи на елементот 4 се 3, 2, додека соседи на елементот 9 се 16, 8, 5, 4. Почетна сума за секој елемент е 0.
  16. */
  17.  
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20.  
  21. int main()
  22. {
  23.     int m, n, i, j, zbir;
  24.     scanf("%d %d", &m, &n);
  25.  
  26.     int niza[m][n];
  27.     int izleznaNiza[m][n];
  28.  
  29.     for(i = 0; i < m; ++i) {
  30.         for(j = 0; j < n; ++j) {
  31.             scanf("%d", &niza[i][j]);
  32.         }
  33.     }
  34.  
  35.     for(i = 0; i < m; ++i) {
  36.         for(j = 0; j < n; ++j) {
  37.             zbir = 0;
  38.             if(i > 0 && niza[i-1][j] > niza[i][j]) {
  39.                 zbir += niza[i-1][j];
  40.             }
  41.             if(i < m-1 && niza[i+1][j] > niza[i][j]) {
  42.                 zbir += niza[i+1][j];
  43.             }
  44.             if(j > 0 && niza[i][j-1] > niza[i][j]) {
  45.                 zbir += niza[i][j-1];
  46.             }
  47.             if(j < n-1 && niza[i][j+1] > niza[i][j]) {
  48.                 zbir += niza[i][j+1];
  49.             }
  50.             izleznaNiza[i][j] = zbir;
  51.         }
  52.     }
  53.  
  54.     for(i = 0; i < m; ++i) {
  55.         for(j = 0; j < n; ++j) {
  56.             printf("%d ", izleznaNiza[i][j]);
  57.         }
  58.         printf("\n");
  59.     }
  60.  
  61.     return 0;
  62. }
Add Comment
Please, Sign In to add comment