Умножение квадратных матриц в С++

Матрицы можно умножать, если они согласованы. Две квадратные матрицы согласованы, так как у них одинаковое число строк в первой матрице и число столбцов во второй. Чтобы умножить две матрицы берут первую строку первой матрицы и умножают на первый столбец второй матрицы почленно. А получившиеся произведения складывают и результат ставят на место первого элемента в первой строке в новой (результирующей матрице). Затем эту эе первую строку умножают также на второй столбец во второй матрице. Результат на место второго элемента в первой строке в новой матрице. И так, пока не перемножат первую сроку первой матрицы на все столбцы второй. Затем берут вторую строку первой матрицы и повторяют процедуру со всеми столбцами второй. А результат пишется построчно во вторую строку результирующей матрицы. Также берут третью строку и так далее пока все строки не будут умножены на все столбцы. В результате получится такая же квадратная мтарица как и две исходные, но с новыми значениями элементов. Ниже листинг программы для умножения двух квадратных матриц.
#include 
using namespace std;
int main(){
//Размер матриц:
const int N=3;
//Индексные переменные:
int i,j,k;
//Первая матрица:
double A[N][N];
//Вторая матрица:
double B[N][N];
//Третья матрица (результат):
double C[N][N];
//Ввод (построчный) элементов первой матрицы:
cout<<"Matrix A:\n";
for(i=0; i < N; i++)
 for(j=0; j < N; j++)
 cin >> A[i][j];
//Ввод (построчный) элементов первой матрицы:
cout << "Matrix B:\n";
for(i=0; i < N; i++)
 for(j=0; j < N; j++)
 cin>>B[i][j];
//Вычисление произведения матриц:
cout << "Matrix C=AB:\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];
 //Вывод значения элемента на экран:
 cout << C[i][j] << " ";
 }
 cout << endl;
}
return 0;
}
Онлайн всего: 27
Гостей: 27
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте