Files
CTDL-GT/Lab1_2b.cpp
tienthieusac b0111fce8a Init
2018-10-03 20:51:47 +07:00

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;
}