Bài số 3 ạ. mình làm chạy k lỗi nhưng k ra output mn check giúp với ! cảm ơn ạ
#include <iostream>
#include <algorithm>
using namespace std;
void NhapMaTran(int **a, int dong, int cot,int dem)// ham nhap ma tran vao va dem xem co bao nhieu phan tu khac 0 luu vao bien "dem"
{
for(int i=0;i<dong;i++){
for(int j=0;j<cot;j++){
cout<<"Nhap phan tu hang:"<<i+1<<" cot:"<<j+1<<" : ";
cin>>a[i][j];
if(a[i][j]!=0){
dem++;
}
}
}
}
void Taomanghaichieu(int **a,int dong, int cot, int **b,int dem)//Nhap mang 2 chieuluu thong tin cac phantu khac 0 cua ma tran ban dau
{
int sopt=1;
b[0][0]=dong;
b[0][1]=cot;
b[0][2]=dem;
for(int i=0;i<dong;i++){
for(int j=0;j<cot;j++){
if(a[i][j]!=0){
b[sopt][2]=a[i][j];
b[sopt][1]=j;
b[sopt][0]=i;
sopt++;
}
}
}
}
void Hoanvi(int **b,int dem)// Hoan vi ma tran va thay doi chi so mang
{
int tg=0;
for(int i=1;i<=dem;i++){
tg=b[i][0];
b[i][0]=b[i][1];
b[i][1]=tg;
}
}
void Sapxep(int **b,int dem)//sap xep mang theo thu tu tang dan = pp NOI BOT!
{
int tg=0;
for (int i = 0; i < dem-1; i++){
for (int j = 0; j < dem-i-1; j++){
if (b[j][0] > b[j+1][0]){
swap(b[j][2],b[j+1][2]);
swap(b[j][1],b[j+1][1]);
swap(b[j][0],b[j+1][0]);
}
}
}
}
void Inmang(int **b,int dong, int cot)
{cout<<endl;
for(int i=0;i<dong;i++){
for(int j=0;j<cot;j++){
cout<<" "<<b[i][j];
}
cout<<endl;
}
}
int main(){
int hang,cot,**a=NULL, **b=NULL,dem=0;
cout<<"Nhap so hang: ";cin>>hang;cout<<endl;
cout<<"Nhap so cot: ";cin>>cot;cout<<endl;
a = (int **)malloc(hang * sizeof(int *));
for (int i = 0; i < hang; i++)//con tro ma tran ban dau
{
a[i] = (int *)malloc(cot * sizeof(int));
}
NhapMaTran(a,hang,cot,dem);
b = (int **)malloc(dem * sizeof(int *));//con tro mang 2 chieu
for (int i = 0; i < dem; i++)
{
a[i] = (int *)malloc(2 * sizeof(int));
}
Taomanghaichieu(a,hang,cot,b,dem);
cout<<"Ma tran hien tai: "<<endl;
Inmang(b,dem,2);
Hoanvi(b,dem);
cout<<"Ma tran sau khi hoan vi: "<<endl;
Sapxep(b,dem);
cout<<"Ma tran sau khi sap xep: "<<endl;
Inmang(b,dem,2);
return 0;
}