mirror of
https://github.com/tiennm99/CTDL-GT.git
synced 2026-06-09 16:13:01 +00:00
93 lines
1.8 KiB
C++
93 lines
1.8 KiB
C++
#include <iostream>
|
|
using namespace std;
|
|
void nhapMatran(int **arr, int r, int c)
|
|
{
|
|
for (int i = 0; i < r; i++)
|
|
{
|
|
for (int j = 0; j < c; j++)
|
|
{
|
|
cout << "Nhap phan tu tai hang " << i + 1 << ", cot " << j + 1 << ":";
|
|
cin >> arr[i][j];
|
|
}
|
|
}
|
|
}
|
|
void hienthiMatran(int **arr, int r, int c)
|
|
{
|
|
for (int i = 0; i < r; i++)
|
|
{
|
|
for (int j = 0; j < c; j++)
|
|
{
|
|
cout << arr[i][j] << "\t";
|
|
}
|
|
cout << endl;
|
|
}
|
|
}
|
|
bool nhanMatran(int **a, int ar, int ac, int **b, int br, int bc, int **c, int &cr, int &cc)
|
|
{
|
|
if (ac == br)
|
|
{
|
|
for (int i = 0; i < cr; i++)
|
|
{
|
|
for (int j = 0; j < cc; j++)
|
|
{
|
|
c[i][j] = 0;
|
|
for (int k = 0; k < ac; k++)
|
|
{
|
|
c[i][j] += a[i][k] * b[k][j];
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
int main()
|
|
{
|
|
int **a, **b, **c;
|
|
int ar, ac, br, bc, cr, cc;
|
|
cout << "Nhap vao so hang cua ma tran A:";
|
|
cin >> ar;
|
|
cout << "Nhap vao so cot cua ma tran A:";
|
|
cin >> ac;
|
|
a = new int*[ar];
|
|
for (int i = 0; i < ar; i++)
|
|
{
|
|
a[i] = new int[ac];
|
|
}
|
|
nhapMatran(a, ar, ac);
|
|
cout << "Nhap vao so hang cua ma tran B:";
|
|
cin >> br;
|
|
cout << "Nhap vao so cot cua ma tran B:";
|
|
cin >> bc;
|
|
b = new int*[br];
|
|
for (int i = 0; i < br; i++)
|
|
{
|
|
b[i] = new int[bc];
|
|
}
|
|
nhapMatran(b, br, bc);
|
|
cr = ar;
|
|
cc = bc;
|
|
c = new int*[cr];
|
|
for (int i = 0; i < cr; i++)
|
|
{
|
|
c[i] = new int[cc];
|
|
}
|
|
cout << "Ma tran A[" << ar << "][" << ac << "]:" << endl;
|
|
hienthiMatran(a, ar, ac);
|
|
cout << "Ma tran B[" << br << "][" << bc << "]:" << endl;
|
|
hienthiMatran(b, ar, ac);
|
|
cout << "Ma tran C = A*B:" << endl;
|
|
if (nhanMatran(a, ar, ac, b, br, bc, c, cr, cc))
|
|
{
|
|
hienthiMatran(c, cr, cc);
|
|
}
|
|
else
|
|
{
|
|
cout << "Khong the nhan hai ma tran voi kich co " << ar << "*" << ac << " va " << br << "*" << bc << "!" << endl;
|
|
}
|
|
system("pause");
|
|
return 0;
|
|
} |