Условие задачи
Задана целочисленная динамическая матрица M[m][n]. Элементы этой матрицы, без остатка делящиеся на 6, переписать в динамический массив L[m*n] и найти их произведение. Напечатать матрицу M, массив L и найденное произведение. Числа m и n вводятся с клавиатуры.
Решение задачи на языке Си
Матрицу M[m][n] заполним с помощью генератора случайных чисел.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
#include <stdio.h> #include <stdlib.h> #include <ctime> int main() { int m, n; // читаем m printf("m = "); scanf_s("%d", &m); // читаем n printf("n = "); scanf_s("%d", &n); // указатель под массив M int **M; // выделяем память под массив M = (int**)malloc(m*sizeof(int*)); for (int i = 0; i < m; i++) M[i] = (int*)malloc(n*sizeof(int)); // инициализируем генератор случайных чисел srand(time(NULL)); // заполняем массив M случайными числами от 1 до 100 for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) M[i][j] = (rand() % 100) + 1; // создаем массив L int *L = (int *)malloc(m * n * sizeof(int)); // счетчик количества занесенных элементов в массив L int k = 0; // заносим в L элементы кратные 6 for (int i = 0; i < m; i++) for (int j = 0; j < n; j++) if ((M[i][j] % 6) == 0) { L[k] = M[i][j]; k++; } int proizvedenie = 0; // если есть элементы кратные 6 if (k > 0) { proizvedenie = 1; // вычисляем произведение всех элементов из L for (int i = 0; i < k; i++) proizvedenie = proizvedenie * L[i]; } // вывод результатов printf("\nM[][]:\n"); // выводим M for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) printf("%4d", M[i][j]); printf("\n"); } printf("\nL[]:\n"); // выводим L for (int i = 0; i < k; i++) printf("%4d", L[i]); // выводим произведение printf("\n\nproizvedenie = %d\n", proizvedenie); // очищаем память из под массивов for (int i = 0; i < m; i++) free(M[i]); free(M); free(L); return 0; } |
Результат выполнения программы
Поделиться в соц. сетях: