Умножить матрицу на транспонированную - 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;
}
Объяснение кода листинга программы
В этом коде:
- Создаются матрицы a, b и c размером n на n.
- В матрице a случайным образом заполняются значения от 0 до 9.
- Транспонированная матрица b создается с помощью перебора строк матрицы a.
- Выводится на экран матрица a и ее транспонированная матрица b.
- Производится умножение матрицы a на транспонированную матрицу b и результат сохраняется в матрице c.
- Выводится на экран произведение матрицы a на транспонированную матрицу b (матрица c).