metalni

Трансформација на матрица

Dec 28th, 2019
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.40 KB | None | 0 0
  1. /* Трансформација на матрица
  2.  
  3. За квадратна матрица А со димензии n x n, од стандарден влез се внесува бројот n (n > 2) и елементите на матрицата (реални броеви). Нека X e збирот од елементите под главната дијагонала во матрицата А. Нека Y е збирот од елементите под споредната дијагонала во матрицата А. Да се креира нова матрица B на следниот начин:
  4.  
  5.     сите елементи од главната дијагонала во матрицата B треба да имаат вредност X
  6.  
  7.     сите елементи од споредната дијагонала во матрицата B треба да имаат вредност Y
  8.  
  9.     ако даден елемент припаѓа и на главната и на споредната дијагонала во матрицата B, тогаш неговата вредност e X+Y
  10.  
  11.     сите останати елементи во матрицата B имаат вредност 0
  12.  
  13. Новата матрица B да се испечати на стандарден излез.
  14. examples(photo): https://gold-hosting.me/pics/images/2019/12/28/image8628602829b55aed.png
  15. */
  16.  
  17. #include <stdio.h>
  18. #define MAX 100
  19.  
  20. int main(void){
  21.     float a[MAX][MAX], x=0, y=0;
  22.     int n;
  23.     scanf("%d", &n);
  24.     for(int i=0; i<n; i++){
  25.         for(int j=0; j<n; j++){
  26.             scanf("%f", &a[i][j]);
  27.         }
  28.     }
  29.    
  30.     for(int i=0; i<n; i++){
  31.         for(int j=0; j<n; j++){
  32.             if(i>j)
  33.                 x+=a[i][j];
  34.             if(i+j>n-1)
  35.                 y+=a[i][j];
  36.         }
  37.     }
  38.    
  39.     for(int i=0; i<n; i++){
  40.         for(int j=0; j<n; j++){
  41.             if(i==j)
  42.                 a[i][j]=x;
  43.             else if(i>j && i+j!=n-1)
  44.                 a[i][j]=0;
  45.             if(i+j==n-1)
  46.                 a[i][j]=y;
  47.             else if(i+j>n-1 && i!=j)
  48.                 a[i][j]=0;
  49.             if(j>i&& i!=j && i+j!=n-1)
  50.                 a[i][j]=0;
  51.             if(n%2!=0 && j==n/2 && i==n/2)
  52.                 a[i][j]=x+y;
  53.            
  54.         }
  55.     }
  56.    
  57.     for(int i=0; i<n; i++){
  58.         for(int j=0; j<n; j++){
  59.             printf("%.1f ", a[i][j]);
  60.         }
  61.         printf("\n");
  62.     }
  63. }
Add Comment
Please, Sign In to add comment