Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Соседи
- Oд стандарден влез се вчитува матрица со димензии M x N.
- Да се напише програма која во друга матрица со исти димензии,
- секој елемент ќе го замени со збирот на неговите соседни елементи (по хоризонтала и вертикала) кои се поголеми од самиот тој елемент.
- Соседни елементи на еден елемент во матрицата се елементите кои се наоѓаат горе, долу, лево и десно од самиот елемент
- (ако елементот е дел од првата или последната редица или колона му недостасува некој сосед).
- Пример:
- 4 2 7 11 0 19 27 0
- 3 8 16 1 29 16 0 32
- 17 8 9 5 0 40 16 16
- 6 14 4 7 31 0 30 0
- Во примерот соседи на елементот 4 се 3, 2, додека соседи на елементот 9 се 16, 8, 5, 4. Почетна сума за секој елемент е 0.
- */
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- int m, n, i, j, zbir;
- scanf("%d %d", &m, &n);
- int niza[m][n];
- int izleznaNiza[m][n];
- for(i = 0; i < m; ++i) {
- for(j = 0; j < n; ++j) {
- scanf("%d", &niza[i][j]);
- }
- }
- for(i = 0; i < m; ++i) {
- for(j = 0; j < n; ++j) {
- zbir = 0;
- if(i > 0 && niza[i-1][j] > niza[i][j]) {
- zbir += niza[i-1][j];
- }
- if(i < m-1 && niza[i+1][j] > niza[i][j]) {
- zbir += niza[i+1][j];
- }
- if(j > 0 && niza[i][j-1] > niza[i][j]) {
- zbir += niza[i][j-1];
- }
- if(j < n-1 && niza[i][j+1] > niza[i][j]) {
- zbir += niza[i][j+1];
- }
- izleznaNiza[i][j] = zbir;
- }
- }
- for(i = 0; i < m; ++i) {
- for(j = 0; j < n; ++j) {
- printf("%d ", izleznaNiza[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment