#include <iostream>
#include <ctime>
using namespace std;
void vvod(int **x, int n, int m);
void vivod(int **x, int n, int m);
void ProizvMatrix(int **x, int **y, int **z, int n, int m, int l);
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(0));
const int n=5, m=8, l=10;
int **a, **b, **c; //A[n,m]*B[m,l]=C[n,l]
a=new int *[n];
for (int i=0;i<n;i++) a[i]=new int [m];
b=new int *[m];
for (int i=0;i<m;i++) b[i]=new int [l];
c=new int *[n];
for (int i=0;i<n;i++) c[i]=new int [l];
vvod(a,n,m);
cout<<"Матрица А"<<endl;
vivod(a,n,m);
vvod(b,m,l);
cout<<"Матрица B"<<endl;
vivod(b,m,l);
ProizvMatrix(a,b,c,n,m,l);
cout<<"Матрица C = A x B"<<endl;
vivod(c,n,l);
for (int i=0;i<n;i++) delete []a[i];
delete []a;
for (int i=0;i<m;i++) delete []b[i];
delete []b;
for (int i=0;i<n;i++) delete []c[i];
delete []c;
system("pause");
return 0;
}
void vvod(int **x, int n, int m)
{
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
x[i][j]=rand()%40+10;
}
void vivod(int **x, int n, int m)
{
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
cout<<x[i][j]<<" ";
cout<<endl;
}
}
void ProizvMatrix(int **x, int **y, int **z, int n, int m, int l)
{
//X[n,m]*Y[m,l]=Z[n,l]
int s;
for (int i=0;i<n;i++)
{
for (int j=0;j<l;j++)
{
s=0;
for (int p=0;p<m;p++)
s=s+x[i][p]*y[p][j];
z[i][j]=s;
}
}
}
|