Advertisement
J3st3rs_j0k3

pr4_4_egor

Nov 25th, 2021
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.66 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <malloc.h>
  4. #define M 3
  5. #define N 4
  6.  
  7. int main()
  8. {
  9.     int i, j, k, f, Mcount;
  10.     float **A;
  11.     A = malloc(M*sizeof(float*));
  12.     if(A == NULL)
  13.     {
  14.         printf("Ошибка выделения памяти");
  15.         return 100;
  16.     }
  17.    
  18.     for(i = 0; i < M; i++){
  19.         A[i] = (float*)calloc(N, sizeof(float*)); //выделение памяти под строки
  20.         if(A+i == NULL){
  21.             printf("Memory is not allocated"); //проверка того выделилась ли память
  22.             for(j = 0; j < i; j++) free(*(A+j));
  23.             free(A);
  24.             exit(0);
  25.         }
  26.     }
  27.    
  28.     for (i = 0; i < M; i++){ // Ввод элементов массива
  29.         for(j = 0; j < N; j++){
  30.                 printf("A[%d][%d] = ", i, j);
  31.                 if(scanf("%f", *(A + i) + j) != 1){
  32.                     printf("Error, enter digits\n");
  33.                     j--;
  34.                     fflush(stdin);
  35.                 }
  36.         }
  37.     }
  38.    
  39.     // for(i = 1; i < M; i++)
  40.     //     A[i]=A[i-1] + N;
  41.     // Mcount = M;
  42.     printf("Your matrix:\n");
  43.     for(i = 0; i < M; i++){ //Вывод элементов массива
  44.         for(j = 0; j < N; j++){
  45.             printf("%10.2f ", *(*(A + i) + j));
  46.         }
  47.         printf("\n");
  48.     }
  49.    
  50.     // for(i = 1; i < M; i++)
  51.     //     A[i]=A[i-1] + N;
  52.     // Mcount = M;
  53.     // for(i = 0; i < M; i++)
  54.     // {
  55.     //     for(j = 0; j < N; j++)
  56.     //     {
  57.     //         printf ("A[%d][%d] = ", i, j );
  58.     //         while(scanf ("%f", *(A+i)+j)!=1)
  59.     //         {
  60.     //             fflush(stdin);
  61.     //             printf("Ошибка\n");
  62.     //             printf ("A[%d][%d] = ", i, j );
  63.     //         }
  64.     //     }
  65.     // }
  66.    
  67.     for(i = 0; i < M; i++)
  68.     {
  69.         for(j = 0; j < N; j++)
  70.         {
  71.             if(*(*(A+i)+j) == 1)
  72.             {
  73.                 for (f = i; f < M-1; f++)
  74.                 {
  75.                     for (k = 0; k < N; k++)
  76.                     {
  77.                         *(*(A+f)+k) = *(*(A+(f+1))+k);
  78.                         *(*(A+(f+1))+k) = 0;
  79.                     }
  80.                 }
  81.                 i--;
  82.                 j--;
  83.                 Mcount--;
  84.             }
  85.         }
  86.     }
  87.     if(Mcount == 0)
  88.     {
  89.         printf("Матрица пустая");
  90.         return 0;
  91.     }
  92.     printf("new matrix:\n");
  93.     for(i = 0; i < M-1; i++)
  94.     {
  95.         for(j = 0; j < N; j++)
  96.             printf ("%10.2f", *(*(A+i)+j));
  97.         printf("\n");
  98.  
  99.     }
  100.     for(i = 0; i < M; i++)
  101.         free(*(A+i));
  102.     free(A);
  103.     return 0;
  104. }
  105.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement