Получить новую матрицу того же размера по правилу - 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, завершаясь
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д