Получить новую матрицу того же размера по правилу - C (СИ)
Формулировка задачи:
Даны две действительные квадратные матрицы размером n =< 7. Получить новую матрицу того же размера путем добавления к элементам каждого столбца первой матрицы произведения элементов соответствующей строки второй матрицы.
Решение задачи: «Получить новую матрицу того же размера по правилу»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <memory.h>
- #define N 5
- void fill_matrix(int** A, bool zero = false)
- {
- for (int i = 0; i < N; i++)
- {
- A[i] = new int[N];
- for (int j = 0; j < N; j++)
- {
- A[i][j] = (!zero) ? rand() % N + 1 : 0;
- printf("%d ",A[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- }
- int main(int argc, char* argv[])
- {
- int** A = new int*[N];
- memset((void*)A, 0x00, sizeof(int*) * N);
- int** B = new int*[N];
- memset((void*)B, 0x00, sizeof(int*) * N);
- int** C = new int*[N];
- memset((void*)C, 0x00, sizeof(int*) * N);
- fill_matrix(A); fill_matrix(B); fill_matrix(C, 1);
- for (int q = 0; q < N; q++)
- {
- int mul = 1, i = 0;
- while (i < N) mul*=B[q][i++];
- for (int j = 0; j < N; j++)
- C[j][q] = A[j][q] + mul;
- }
- for (int z1 = 0; z1 < N; z1++)
- {
- for (int z2 = 0; z2 < N; z2++)
- printf("%d ",C[z1][z2]);
- printf("\n");
- }
- _getch();
- return 0;
- }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется размер матрицы N
- Создается функция fill_matrix для заполнения матрицы A с использованием генератора случайных чисел
- В функции main создаются матрицы A, B и C динамически с помощью оператора new
- Функция fill_matrix вызывается для заполнения матрицы A, B и C
- В цикле перебираются элементы матрицы C, умножая их на соответствующие элементы матрицы B
- В цикле перебираются элементы матрицы C, выводя их на экран
- Вызывается функция _getch для приостановки выполнения программы до нажатия клавиши
- Программа возвращает 0, завершаясь
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д