Advertisement
brsjak

Matrica - SP Lab 5 100/100

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