Advertisement
J3st3rs_j0k3

pr4_3_dynamic

Nov 18th, 2021
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <malloc.h>
  4. #define row 2
  5. #define col 3
  6.  
  7. int main()
  8. {
  9.     int *matr, i, j, n, m, tmp;
  10.  
  11.     matr = malloc(row*sizeof(int*)); // Выделение памяти под указатели
  12.  
  13.     if(matr == NULL){
  14.         printf("Memory is not allocated"); //проверка того выделилась ли память
  15.         exit(0);
  16.     }
  17.  
  18.     for(i = 0; i < row; i++){
  19.         matr[i] = calloc(col, sizeof(int)); //выделение памяти под строки
  20.         if(matr+i == NULL){
  21.             printf("Memory is not allocated"); //проверка того выделилась ли память
  22.             for(j = 0; j < i; j++) free(matr+j);
  23.             free(matr);
  24.             exit(0);
  25.         }
  26.     }
  27.  
  28.     for (i = 0; i < row; i++){ // Ввод элементов массива
  29.         for(j = 0; j < col; j++){
  30.                 printf("matr[%d][%d] = ", i, j);
  31.                 if(scanf("%d", (matr + i*col + j)) != 1){
  32.                     printf("Error, enter digits\n");
  33.                     j--;
  34.                     fflush(stdin);
  35.                 }
  36.         }
  37.     }
  38.  
  39.     printf("Your matrix:\n");
  40.     for(i = 0; i < row; i++){ //Вывод элементов массива
  41.         for(j = 0; j < col; j++){
  42.             printf("%5d ", *(matr + i*col + j));
  43.         }
  44.         printf("\n");
  45.     }
  46.  
  47.     for(int k = 0; k < row; k++){
  48.         for(i = 0; i < row; i++){
  49.             for(j = 0; j < row; j++){
  50.                 if(*(matr+i*col+j) < *(matr+i*col+(j+1))){
  51.                     tmp = *(matr+i*col+j);
  52.                     *(matr+i*col+j) = *(matr+i*col+(j+1));
  53.                     *(matr+i*col+(j+1)) = tmp;
  54.                 }
  55.             }
  56.         }
  57.     }
  58.  
  59.     printf("\nYour sorted matrix: \n");
  60.     for(i = 0;  i < row; i++){
  61.         for(j = 0; j < col; j++){
  62.             printf("%5d",  *(matr + i*col + j));
  63.         }
  64.         printf("\n");
  65.     }
  66.  
  67.     for(i = 0; i < row; i++){
  68.         free(matr+i);
  69.     }
  70.     free(matr);
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement