Advertisement
brsjak

Regioni na Matrica - SP Lab - 5 100/100

Nov 1st, 2016
1,301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.91 KB | None | 0 0
  1. /*Региони на матрица Problem 4 (5 / 5)
  2. Главната и споредната дијагонала ја делат квадратната матрицата на 4 региони:
  3.  
  4. Елементите кои лежат на некоја од дијагоналите не припаѓаат на ниту еден регион.
  5.  
  6. Од стандарден влез се читаат димензии на квадратна матрица (макс. 100х100), составена од целобројни елементи. Во продолжение се читаат сите елементи од матрицата соодветно.
  7.  
  8. Да се состави нова матрица од иста димензија, во која секој елемент кој припаѓа на претходно наведените региони ќе биде заменет со сумата на останатите елементи од истиот регион од првата матрица. Доколку нема други елементи во истиот регион, елементот да се постави на 0.
  9.  
  10. Елементите од главната и споредната дијагонала потребно е да се постават на 0.*/
  11.  
  12. #include<stdio.h>
  13.  
  14. int main()
  15. {
  16.     int n, zbir1=0, zbir2=0, zbir3=0, zbir4=0, i, j;
  17.     scanf("%d", &n);
  18.     int a[n][n], b[n][n];
  19.  
  20.  
  21.     for(i=0; i<n; i++)
  22.         for(j=0; j<n; j++)
  23.             scanf("%d", &a[i][j]);
  24.  
  25.     for(i=0; i<n; i++)
  26.         for(j=0; j<n; j++)
  27.             if(i==j)
  28.                 b[i][j]=0;
  29.  
  30.     for(i=0,j=n-1; i<n,j>=0; i++,j--)
  31.         b[i][j]=0;
  32.  
  33.     // prv region
  34.     for(i=0; i<(n-1)/2; i++)
  35.         for(j=1; j<n-1; j++)
  36.             if(i<j&&i+j<n-1)
  37.                 zbir1+=a[i][j];
  38.  
  39.     for(i=0; i<(n-1)/2; i++)
  40.         for(j=1; j<n-1; j++)
  41.             if(i<j&&i+j<n-1)
  42.                 b[i][j]=zbir1-a[i][j];
  43.  
  44.     // vtor region
  45.     for(i=1; i<n-1; i++)
  46.         for(j=0; j<(n-1)/2; j++)
  47.            
  48.             if(i>j&&i+j<n-1)
  49.                 zbir2+=a[i][j];
  50.  
  51.     for(i=1; i<n-1; i++)
  52.         for(j=0; j<(n-1)/2; j++)
  53.             if(i>j&&i+j<n-1)
  54.                 b[i][j]=zbir2-a[i][j];
  55.  
  56.     // tret region
  57.     for(i=1; i<n-1; i++)
  58.         for(j=n/2+1; j<n; j++)
  59.             if(i<j&&i+j>=n)
  60.                 zbir3+=a[i][j];
  61.  
  62.     for(i=1; i<n-1; i++)
  63.         for(j=n/2+1; j<n; j++)
  64.             if(i<j&&i+j>=n)
  65.                 b[i][j]=zbir3-a[i][j];
  66.  
  67.     // chetvrt region
  68.     for(i=(n+1)/2; i<n; i++)
  69.         for(j=1; j<n-1; j++)
  70.             if(i>j&&i+j>=n)
  71.                 zbir4+=a[i][j];
  72.  
  73.     for(i=(n+1)/2; i<n; i++)
  74.         for(j=1; j<n-1; j++)
  75.             if(i>j && i+j>=n)
  76.                 b[i][j]=zbir4-a[i][j];
  77.  
  78.     for(i=0; i<n; i++)
  79.     {
  80.         for(j=0; j<n; j++)
  81.             printf("%d ", b[i][j]);
  82.         printf("\n");
  83.     }
  84.     return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement