Advertisement
JStefan

[Laboratoriski] Regioni na matrica

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