Получить новую матрицу того же размера по правилу - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Даны две действительные квадратные матрицы размером n =< 7. Получить новую матрицу того же размера путем добавления к элементам каждого столбца первой матрицы произведения элементов соответствующей строки второй матрицы.

Решение задачи: «Получить новую матрицу того же размера по правилу»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <memory.h>
  5.  
  6. #define N 5
  7.  
  8. void fill_matrix(int** A, bool zero = false)
  9. {
  10.     for (int i = 0; i < N; i++)
  11.     {
  12.         A[i] = new int[N];
  13.         for (int j = 0; j < N; j++)
  14.         {
  15.             A[i][j] = (!zero) ? rand() % N + 1 : 0;
  16.             printf("%d ",A[i][j]);
  17.         }
  18.  
  19.         printf("\n");
  20.     }
  21.  
  22.     printf("\n");
  23. }
  24.  
  25. int main(int argc, char* argv[])
  26. {
  27.     int** A = new int*[N];
  28.     memset((void*)A, 0x00, sizeof(int*) * N);
  29.  
  30.     int** B = new int*[N];
  31.     memset((void*)B, 0x00, sizeof(int*) * N);
  32.  
  33.     int** C = new int*[N];
  34.     memset((void*)C, 0x00, sizeof(int*) * N);
  35.  
  36.     fill_matrix(A); fill_matrix(B); fill_matrix(C, 1);
  37.  
  38.     for (int q = 0; q < N; q++)
  39.     {
  40.         int mul = 1, i = 0;
  41.         while (i < N) mul*=B[q][i++];
  42.  
  43.         for (int j = 0; j < N; j++)
  44.             C[j][q] = A[j][q] + mul;
  45.     }
  46.  
  47.     for (int z1 = 0; z1 < N; z1++)
  48.     {
  49.         for (int z2 = 0; z2 < N; z2++)
  50.             printf("%d ",C[z1][z2]);
  51.  
  52.         printf("\n");
  53.     }
  54.  
  55.     _getch();
  56.  
  57.     return 0;
  58. }

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы
  2. Определяется размер матрицы N
  3. Создается функция fill_matrix для заполнения матрицы A с использованием генератора случайных чисел
  4. В функции main создаются матрицы A, B и C динамически с помощью оператора new
  5. Функция fill_matrix вызывается для заполнения матрицы A, B и C
  6. В цикле перебираются элементы матрицы C, умножая их на соответствующие элементы матрицы B
  7. В цикле перебираются элементы матрицы C, выводя их на экран
  8. Вызывается функция _getch для приостановки выполнения программы до нажатия клавиши
  9. Программа возвращает 0, завершаясь

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы