Advertisement
InnaSibirova

M1

Oct 29th, 2022 (edited)
874
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.78 KB | None | 0 0
  1. #include<stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. int main() {
  5.    srand(time(NULL));
  6.    int N = 10, M = 10,L,count = 0;
  7.    int **A = (int **)malloc(N*sizeof(int *));  // инициализируем массива А
  8.         for(int i = 0; i < N; i++) {
  9.             A[i] = (int *)malloc(M*sizeof(int));
  10.         }
  11.    int **B = (int **)malloc(N*sizeof(int *));  // инициализируем массив В
  12.         for(int i = 0; i < N; i++) {
  13.             B[i] = (int *)malloc(M*sizeof(int));
  14.         }
  15.     printf("Matrix A:\n");                      // задаём и сразу выводим матрицу А
  16.     for(int i = 0; i < N; i++) {
  17.         for(int j = 0; j < M; j++) {
  18.             A[i][j] = rand() % 10;
  19.             printf("%d ", A[i][j]);
  20.         }
  21.         printf("\n");
  22.     }
  23.     L = rand() % 10;   // задаём рандомное число L
  24.     printf("L = %d\n", L);
  25.    
  26.     for(int i = 0; i < N; i++) {            // задаём матрицу В таким образом, что
  27.         if(A[i][0] == L) {                  // в неё записываются строки,
  28.             for(int j = 0; j < M; j++) {    // первый элемент которых равно L
  29.            
  30.             B[count][j] = A[i][j];
  31.         }
  32.             count ++;
  33.         }
  34.        
  35.     }
  36.     if(count == 0) {                            // если ни одна строка не подошла
  37.         printf("Matrix B cannot be built");     // завершаем работу
  38.         for(int i = 0; i < N; i++) {  // очищаем память
  39.         free(A[i]);
  40.         free(B[i]);
  41.        
  42.     }
  43.     free(A);
  44.     free(B);
  45.         return 0;
  46.     }
  47.     printf("Matrix B:\n");
  48.     for(int i = 0; i < count; i++) {        // выводим массив B
  49.         for(int j = 0; j < M; j++) {
  50.             printf("%d ", B[i][j]);
  51.         }
  52.         printf("\n");
  53.     }
  54.    
  55.     for(int i = 0; i < N; i++) {  // очищаем память
  56.         free(A[i]);
  57.         free(B[i]);
  58.        
  59.     }
  60.     free(A);
  61.     free(B);
  62.    
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement