Задача реализовать C=((At)^2)*Bt
Словами. Матрица С = А транспонированная в квадрате * В транспонированная
Не получается умножение, как следствие А транспонированная в квадрат возвести
#include "stdafx.h"
#include <clocale>
#include <iostream>
#define size 2
using namespace std;
void main()
{
setlocale(LC_ALL, "Russian");
int i = 0;
int j = 0;
int A[size][size], At[size][size], At2[size][size], B[size][size], Bt[size][size], C[size][size];
//Вводим А
cout << "A" << endl;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout << "[" << i + 1 << "][" << j + 1 << "]: ";
cin >> A[i][j];
}
}
//Показать, что ввели А
cout << "Введённая матрица А:"<<endl;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout << A[i][j] << " ";
}
cout << endl;
}
//Вводим В
cout << "B" << endl;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout << "[" << i + 1 << "][" << j + 1 << "]: ";
cin >> B[i][j];
}
}
//Показать, что ввели В
cout << endl;
cout << "Введённая матрица В:" << endl;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout << B[i][j] << " ";
}
cout << endl;
}
// транспонируем матрицу A
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
At[i][j] = A[j][i];
}
}
// транспонируем матрицу B
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
Bt[i][j] = B[j][i];
}
}
//Показать транспонированную А
cout << endl;
cout << "А транспонированная: ";
cout << endl;
for (int i = 0; i < size; i++){
for (int j = 0; j < size; j++)
{
cout << At[i][j] << " ";
}
cout << endl;
}
//Показать транспонированную В
cout << endl;
cout << "B транспонированная: ";
cout << endl;
for (int i = 0; i < size; i++){
for (int j = 0; j < size; j++)
{
cout << Bt[i][j] << " ";
}
cout << endl;
}
// Умножаем матрицы, занося результат в массив C
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
C[i][j] = At[i][j] * Bt[i][j] + At[i][j] * Bt[i][j];// +At[i][j] * Bt[i][j];
cout << " " << C[i][j];
}
cout << endl;
}
system("pause");
//return 0;
}