From 0ca8646b68f3e14dc2ac743b134b1ca493fffcef Mon Sep 17 00:00:00 2001 From: ChekAlexey <144238010+chekalexey@users.noreply.github.com> Date: Thu, 14 Dec 2023 21:24:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BC=D0=BD=D0=BE?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=B0=D1=82=D1=80=D0=B8?= =?UTF-8?q?=D1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task5/Chekotov.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 task5/Chekotov.c diff --git a/task5/Chekotov.c b/task5/Chekotov.c new file mode 100644 index 0000000..360a330 --- /dev/null +++ b/task5/Chekotov.c @@ -0,0 +1,72 @@ +#include +#include +int main() +{ + int hgt1, hgt2, wdt1, wdt2; + int** a; + int** b; + int** c; + printf("Введите количество строк первой матрицы: "); + scanf("%d", &hgt1); + printf("Введите количество столбцов первой матрицы: "); + scanf("%d", &wdt1); + printf("Введите количество строк второй матрицы: "); + scanf("%d", &hgt2); + printf("Введите количество столбцов второй матрицы: "); + scanf("%d", &wdt2); + if (wdt1 != hgt2) { + printf("Умножение невозможно!"); + } + + a = malloc(hgt1 * sizeof(int*)); + printf("Введите элементы первой матрицы:\n"); + for (int i = 0; i < hgt1; i++) { + a[i] = (int*)malloc(wdt1 * sizeof(int)); + for (int j = 0; j < wdt1; j++) { + printf("%d %d: ", i, j); + scanf("%d\n", &a[i][j]); + } + } + + printf("Первая матрица: \n"); + for (int i = 0; i < hgt1; i++) { + for (int j = 0; j < wdt1; j++) + printf("%d ", a[i][j]); + printf("\n"); + } + + b = malloc(hgt2 * sizeof(int*)); + printf("Введите элементы второй матрицы:\n"); + for (int i = 0; i < hgt2; i++) { + b[i] = (int*)malloc(wdt2 * sizeof(int)); + for (int j = 0; j < wdt2; j++) { + printf("%d %d: ", i, j); + scanf("%d\n", &b[i][j]); + } + } + + printf("Вторая матрица: \n"); + for (int i = 0; i < hgt2; i++) { + for (int j = 0; j < wdt2; j++) { + printf("%d ", b[i][j]); + } + printf("\n"); + } + + c = malloc(hgt1 * sizeof(int*)); + for (int i = 0; i < hgt1; i++) { + c[i] = (int*)malloc(wdt2 * sizeof(int)); + for (int j = 0; j < wdt2; j++) { + c[i][j] = 0; + for (int k = 0; k < wdt1; k++) + c[i][j] += a[i][k] * b[k][j]; + } + } + + printf("Матрица произведения:\n"); + for (int i = 0; i < hgt1; i++) { + for (int j = 0; j < wdt2; j++) + printf("%d ", c[i][j]); + printf("\n"); + } +} \ No newline at end of file