Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int main() {
- srand(time(NULL));
- int N = 10, M = 10,L,count = 0;
- int **A = (int **)malloc(N*sizeof(int *)); // инициализируем массива А
- for(int i = 0; i < N; i++) {
- A[i] = (int *)malloc(M*sizeof(int));
- }
- int **B = (int **)malloc(N*sizeof(int *)); // инициализируем массив В
- for(int i = 0; i < N; i++) {
- B[i] = (int *)malloc(M*sizeof(int));
- }
- printf("Matrix A:\n"); // задаём и сразу выводим матрицу А
- for(int i = 0; i < N; i++) {
- for(int j = 0; j < M; j++) {
- A[i][j] = rand() % 10;
- printf("%d ", A[i][j]);
- }
- printf("\n");
- }
- L = rand() % 10; // задаём рандомное число L
- printf("L = %d\n", L);
- for(int i = 0; i < N; i++) { // задаём матрицу В таким образом, что
- if(A[i][0] == L) { // в неё записываются строки,
- for(int j = 0; j < M; j++) { // первый элемент которых равно L
- B[count][j] = A[i][j];
- }
- count ++;
- }
- }
- if(count == 0) { // если ни одна строка не подошла
- printf("Matrix B cannot be built"); // завершаем работу
- for(int i = 0; i < N; i++) { // очищаем память
- free(A[i]);
- free(B[i]);
- }
- free(A);
- free(B);
- return 0;
- }
- printf("Matrix B:\n");
- for(int i = 0; i < count; i++) { // выводим массив B
- for(int j = 0; j < M; j++) {
- printf("%d ", B[i][j]);
- }
- printf("\n");
- }
- for(int i = 0; i < N; i++) { // очищаем память
- free(A[i]);
- free(B[i]);
- }
- free(A);
- free(B);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement