Advertisement
Josif_tepe

Untitled

Apr 8th, 2021
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.47 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <gsl/gsl_matrix.h>
  4. #include <gsl/gsl_vector.h>
  5.  
  6. int main() {
  7.     int K, L;
  8.     scanf("%d%d", &K, &L); // vnesuvanje na dimenziite od matricata
  9.     int n;
  10.     scanf("%d", &n); // dolzina na vektor
  11.     gsl_vector * vekt = gsl_vector_alloc(n + 10);
  12.     for(int i = 0; i < n; i++) {
  13.         int pom;
  14.         scanf("%d", &pom);
  15.         gsl_vector_set(vekt, i, pom);
  16.     }
  17.     int Z; // kolku treba da skokame
  18.     scanf("%d", &Z);
  19.    
  20.     gsl_matrix * mat = gsl_matrix_alloc(K, L);
  21.     gsl_matrix_set_zero(mat); // site elementi na matricata na pocetok neka bidat ednakvi na 0
  22.    
  23.     int mat_i = 0;
  24.     int mat_j = 0;
  25.    
  26.     for(int i = 0; i < n; i += Z) {
  27.         int max_element = 0;
  28.         for(int j = 0; j < Z; j++) {
  29.             if(i + j < n) {
  30.                 if(max_element < gsl_vector_get(vekt, i + j)) {
  31.                     max_element = gsl_vector_get(vekt, i + j);
  32.                 }
  33.             }
  34.         }
  35. //        printf("%d ", max_element);
  36.         gsl_matrix_set(mat, mat_i, mat_j, (double) max_element);
  37.         mat_j++;
  38.         if(mat_j == L) {
  39.             mat_j = 0;
  40.             mat_i++;
  41.         }
  42.        
  43.     }
  44.     for(int i = 0; i < K; i++) {
  45.         for(int j = 0; j < L; j++) {
  46.             printf("%.0f ", gsl_matrix_get(mat, i, j));
  47.         }
  48.         printf("\n");
  49.     }
  50.    
  51.    
  52.     return 0;
  53. }
  54. /*
  55.  3 3
  56.  20
  57.  1 7 0 2 15 3 14 8 9 -2 -3 6 13 0 5 26 12 3 4 7
  58.  3
  59.  
  60.  **/
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement