Đề bài là viết hàm int**tichmt(int **A, int **B, int N) để nhân 2 ma trận A và B có kích thước NxN và mảng A B và mảng tích được cấp phát động.
Mọi người xem em sai chỗ nào ạ
#include <iostream>
using namespace std;
int** tichmt(int** A, int** B, int N);
void CapPhat(int** &A, int** &B, int N);
int main()
{
int N, **A, **B;
cout << "Ma tran NxN. Nhap N = " ;
cin >> N;
CapPhat(A, B, N);
cout << "Nhap ma tran A: ";
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
cout << "A[" << i << "][" << j << "] = ";
cin >> A[i][j];
}
}
cout << "Nhap ma tran B: ";
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
cout << "B[" << i << "][" << j << "] = ";
cin >> B[i][j];
}
}
cout << "Tich 2 mt la: ";
for (int i = 0; i < N; i++)
cout << **(tichmt(A,B,N) + i) << " ";
for (int i = 0; i < N; i++)
{
delete[] A[i], B[i];
}
delete[] A, B,tichmt(A,B,N);
return 0;
}
void CapPhat(int** &A, int** &B, int N)
{
A = new int* [N];
for (int i = 0; i < N; i++)
A[i] = new int[N];
B = new int* [N];
for (int i = 0; i < N; i++)
B[i] = new int[N];
}
int** tichmt(int** A, int** B, int N)
{
int** C = new int* [N];
for (int i = 0; i < N; i++)
C[i] = new int[N];
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
{
int s = 0;
for (int k = 0; k < N; k++)
{
s = s + A[i][k] * B[k][j];
}
C[i][j] = s;
}
return C;
}