Умножить матрицу на транспонированную - C (СИ)

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

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

Дана матрица A.Получить матрицу AA*.Где (A*транспонированная) на си

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

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
# define n 3
int main()
{
 srand(time(NULL));
 int i,j,k, a[n][n],b[n][n],c[n][n];
 printf("Random matrix A\n");
 for (i=0; i<n; i++)
  {
   for(j=0; j<n; j++)
    {
      a[i][j]=rand()%10;
      printf("%3d",a[i][j]);
    }
   printf("\n");
  }
 printf("\nTransposition matrix A*\n");
 for (j=0; j<n; j++)
  for(i=0; i<n; i++)
   b[i][j]=a[j][i];
 for (i=0; i<n; i++)
  {
   for(j=0; j<n; j++)
    {
     printf("%3d",b[i][j]);
    } 
   printf("\n");
  }
 for (i=0; i<n; i++)
  {
   for(j=0; j<n; j++)  
    {
     c[i][j]=0;
     for (k=0; k<n; k++)
      c[i][j]+=(a[i][k]*b[k][j]);
    }
  }
 printf("\nProduct A & A*\n");
 for (i=0; i<n; i++)
  {
   for(j=0; j<n; j++)
    {
      printf("%5d",c[i][j]);
    }
   printf("\n");
  }
 getch();
 return 0;
}

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

В этом коде:

  1. Создаются матрицы a, b и c размером n на n.
  2. В матрице a случайным образом заполняются значения от 0 до 9.
  3. Транспонированная матрица b создается с помощью перебора строк матрицы a.
  4. Выводится на экран матрица a и ее транспонированная матрица b.
  5. Производится умножение матрицы a на транспонированную матрицу b и результат сохраняется в матрице c.
  6. Выводится на экран произведение матрицы a на транспонированную матрицу b (матрица c).

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


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

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

10   голосов , оценка 4.2 из 5
Похожие ответы