You are on page 1of 57

MA TRN

Hm nhp & xut ma trn cc s nguyn


void nhap(int a[][100],int &m,int &n)
{
printf("Nhap m:");
scanf("%d",&m);
printf("Nhap n:");
scanf("%d",&n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
printf("Nhap a[%d][%d]:",i,j);
scanf("%d",&a[i],[j]);
}
}
void xuat(int a[][100],int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
Hm nhp & xut ma trn cc s thc
void nhap(float a[][100],int &m,int &n)
{
printf("Nhap m :");
scanf("%d",&m);
printf("Nhap n :");
scanf("%d",&n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
printf("Nhap a[%d][%d]:",i,j);
scanf("%f",&a[i],[j]);
}
}
void xuat(float a[][100],int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%8.3f",a[i][j]);
printf("\n ");
}
}

Hm nhp & xut ma trn cc s nguyn di

void nhap(long a[][100],int &m,int &n)


{
printf("Nhap m :");
scanf("%d",&m);
printf("Nhap n:");
scanf("%d",&n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
printf("Nhap a[%d][%d]",i,j);
scanf("%ld",&a[i][j]);
}
}
void xuat(long a[][100],int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%ld",a[i][j]);
printf("\n ");
}
}

Hm nhp & xut ma trn cc s thc di


void nhap(double a[][100],int &m,int &n);
{
printf("Nhap m :");
scanf("%d",&m);
prinf("Nhap n :");
scanf("%d",&n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
printf("Nhap a[%d][%d]",i,j);
scanf("%lf",&a[i][j]);
}
}
void xuat(double a[][100],int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%lf",a[i][j]);
printf("\n ");
}
}

Chuyn v ma trn thng


K thut tnh ton
320 Tng cc s dng trong ma trn thc
int TongSoDuong(int a[][100], int n, int m)

{
int s=0;
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
if (a[i][j]>0)
s+=a[i][j];
return s;
}
321 Tch cc s l trong ma trn nguyn
int TichGiaTriLe(int a[][100], int n, int m)
{
int t=1;
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
if (a[i][j]%2!=0)
t*=a[i][j];
return t;
}
322 Tng gi tr trn 1 dng ma trn thc
int TongDongX(float *a, int m) //chuy?n a[x] , x l dng m b?n c?n tnh t?ng
{
int S=0;
for (int i=0; i<m; i++)
S+=a[i];
return S;
}
323 Tch gi tr dng trn 1 ct ma trn thc
float TichDuongCotY(float a[][100], int n, int m, int y) //y l s? c?t c?n tnh
{
float T=1;
for (int i=0; i<n; i++)
if (a[i][y]>0)
T*=a[i][y];
return T;
}
324 Tng gi tr dng trn 1 dng ma trn thc
int TongDuongDongX(float *a, int m)
//chuy?n a[x] , x l dng m b?n c?n tnh t?ng
{
int S=0;
for (int i=0; i<m; i++)
{
if (a[i]>0)
S+=a[i];
}
return S;
}
325 Tch cc chn trn 1 ct ma trn nguyn
int TichChanCotY(int a[][100], int n, int m, int y) //y l s? c?t c?n tnh
{
int T=1;
for (int i=0; i<n; i++)

if (a[i][y]%2 = =0)
T*=a[i][y];
return T;
}
326 Trung bnh cng cc s dng ma trn thc
float TBCongDuong(float a[][100], int n, int m)
{
int S=0;
int dem =0 ;
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
if (a[i][j]>0)
{
S+=a[i][j];
dem++;
}
}
}
return (float)(S/dem);
}
327 Tng cc gi tr nm trn bin ca ma trn
int TongBien(int a[][100], int n, int m)
{
int S=0;
for (int i=0; i<m; i++)
{
S = S+ a[0][i] + a[n-1][i];
}
for (i=1; i<n-1; i++)
{
S = S+ a[i][0] + a[i][m-1];
}
return S;
}
328 Trung bnh nhn cc s dng ma trn thc
float TBNhanDuong(float **a, int n, int m)
{
float T=1;
int dem =0 ;
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
if (a[i][j]>0)
{
T*=a[i][j];
dem++;
}
}
}
return pow(T,1.0/dem);
}

329 Bin i ma trn bng cch thay cc gi tr m bng gi tr tuyt i ca n


void BienDoiMaTran(int a[][100], int n, int m)
{
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
a[i][j] = abs(a[i][j]);
}
330 Bin i ma trn thc bng cch thay cc gi tr bng gi tr nguyn gn n nht
float XuLy(float n)
{
float PhanNguyen = (int)(n);
float PhanLe = n - PhanNguyen;
if (PhanLe < 0,5)
{
return PhanNguyen;
}
return PhanNguyen+1;
}
void BienDoiMaTran(float a[][100], int dong, int cot)
{
for (int i=0;i<dong; i++)
{
for (int j=0; j<cot; j++)
{
a[i][j] = XuLy(a[i][j]);
}
}
}
331 Tng cc gi tr trn 1 dng ma trn thc
float TongDongX(int a[], int m) //chuy?n a[x] , x l dng m b?n c?n tnh t?ng
{
float S=0;
for (int i=0; i<m; i++)
S+=a[i];
return S;
}
332 Tng gi tr l trn 1 ct ma trn nguyn
int TongLeCotY(int a[][100], int n, int m, int y) //y l s? c?t c?n tnh
{
int S=0;
for (int i=0; i<n; i++)
if (a[i][y]%2 ! =0)
S+=a[i][y];
return S;
}
333 Tng cc s hon thin trong ma trn s nguyn
int sohoanthien(int n)
{
int tong=0;
for (int i=1 ; i<n; i++)
if(n%i==0)
tong = tong + i;
if (tong == n)
return 1;

return 0;
}
int TongSoHoanThien(int a[][100],int n, int m)
{
int S=0;
for (int i=0;i<dong; i++)
for (int j=0; j<cot; j++)
if (SoHoanThien(a[i][j])==1)
S+=a[i][j];
return S;
}
K thut m
334 Vit hm m s lng s dng trong ma trn thc
int DemDuong(float a[][100], int dong, int cot)
{
int dem=0;
for (int i=0;i<dong; i++)
for (int j=0; j<cot; j++)
if (a[i][j]>0)
dem++;
return dem;
}
335 m s lng s ng t trong ma trn nguyn
int SoNguyenTo(int n)
{
if (n<=1)
return 0;
for (int i=2; i<n; i++)
if (n%i==0)
return 0;
return 1;
}
int DemSoNguyenTo(int a[][100], int dong, int cot)
{
int dem=0;
for (int i=0;i<dong; i++)
for (int j=0; j<cot; j++)
if (SoNguyenTo(a[i][j])==1)
dem++;
return dem;
}
336 m tn sut xut hin ca 1 gi tr x trong ma trn thc
int DemGiaTriX(float a[][100], int dong, int cot, float x)
{
int dem=0;
for (int i=0;i<dong; i++)
for (int j=0; j<cot; j++)
if (a[i][j]==x)
dem++;
return dem;
}
337 m s ch s trong ma trn s nguyn dng
int DemTungSo(int n)
{

int dem = 1;
n = abs(n);
while (n>=10)
{
n= n/10;
dem++;
}
return dem;
}
int Dem(int a[][100], int dong, int cot)
{
int dem = 0;
for (int i=0;i<dong; i++)
{
for (int j=0; j<cot; j++)
{
dem += DemTungSo(a[i][j]);
}
}
return dem;
}
338 m s lng s dng trn 1 hng ma trn thc
int DemDuong(float a[][100], int cot, int HangCanTinh)
{
int dem=0;
for (int j=0; j<cot; j++)
if (a[HangCanTinh][j]>0)
dem++;
return dem;
}339 m s lng s hon thin trn 1 hng ma trn nguyn
int SoHoanThien(int n)
{
if (n<=0)
return 0;
int s=0;
for (int i=1;i<n;i++)
if (n%i==0)
s+=i;
if (s==n)
return 1;
return 0;
}
int DemSoHoanThien(int a[][100], int cot, int HangCanTinh)
{
int dem=0;
for (int j=0; j<cot; j++)
if (SoHoanThien(a[HangCanTinh][j])==1)
dem++;
return dem;
}
340 m s lng m trn 1 ct ma trn thc
int DemSoDuong(float a[][100], int dong, int CotCanTinh)
{
int dem=0;

for (int i=0; i<dong; i++)


if (a[i][CotCanTinh]<0)
dem++;
return dem;
}
341 m s lng dng trn bin ca ma trn thc
int DemSoDuong(float a[][100], int dong, int Cot)
{
int dem=0;
for (int j=0; j<Cot; j++)
{
if (a[0][j]>0)
dem++;
if (a[dong-1][j]>0)
dem++;
}
for (int i=1; i<dong-1; i++)
{
if (a[i][0]>0)
dem++;
if (a[i][Cot-1]>0)
dem++;
}
return dem;
}
342 m s lng pt cc i ma trn thc. 1 pt cc i l khi n ln hn cc pt xung quanh
int CucDai(float a[][100],int dong,int cot, int i, int j)
{
int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1};
int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1};
for (int k=0; k<8; k++)
{
if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))
{
if (a[i][j]<a[dx[k]+i][dy[k]+j])
{
return 0;
}
}
}
return 1;
}
int DemCucDai(float a[][100], int dong, int cot)
{
int dem=0;
for (int i=0;i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (CucDai(a,dong,cot,i,j)==1)
{
printf("\na[%d][%d] = %d",i,j,a[i][j]);
dem++;
}

}
}
return dem;
}
343 m s lng pt cc tr ma trn thc.1 pt cc tr khi n ln hn hoc nh hn pt xung quanh
int CucTri(float a[][100],int dong,int cot, int i, int j)
{
int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1};
int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1};
for (int k=0; k<8; k++)
{
if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))
{
if (a[i][j]<a[dx[k]+i][dy[k]+j])
{
for (k=k+1; k<8; k++)
{
if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))
{
if (a[i][j]>a[dx[k]+i][dy[k]+j])
{
return 0;
}
}
}
}
else
{
for (k=k+1; k<8; k++)
{
if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))
{
if (a[i][j]<a[dx[k]+i][dy[k]+j])
{
return 0;
}
}
}
}
}
}
return 1;
}
int DemCucTri(float a[][100], int dong, int cot)
{
int dem=0;
for (int i=0;i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (CucTri(a,dong,cot,i,j)==1)
{
dem++;
}

}
}
return dem;
}
344 m s lng gi tr c trong ma trn thc. Lu : nu c k pt (k>=1) trong ma trn bng nhau th ta ch tnh
l 1
int Xet(float a[][100], int dong,int cot, int i, int j)
{
int k, h; //k: dong, h: cot
for (h=j+1; h<cot; h++)
{
if (a[i][h] == a[i][j])
{
return 0;
}
}
for (k=i+1; k<dong; k++)
{
for (h=0; h<cot; h++)
{
if (a[k][h] == a[i][j])
{
return 0;
}
}
}
return 1;
}
int DemPtu(float a[][100],int dong,int cot)
{
int dem=0;
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (Xet(a,dong,cot,i,j)==1)
{
dem++;
}
}
}
return dem;
}
345 Tnh tng cc pt cc tr trong ma trn thc
int CucTri(float a[][100],int dong,int cot, int i, int j)
{
int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1};
int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1};
for (int k=0; k<8; k++)
{
if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))
{
if (a[i][j]<a[dx[k]+i][dy[k]+j])
{

for (k=k+1; k<8; k++)


{
if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))
{
if (a[i][j]>a[dx[k]+i][dy[k]+j])
{
return 0;
}
}
}
}
else
{
for (k=k+1; k<8; k++)
{
if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))
{
if (a[i][j]<a[dx[k]+i][dy[k]+j])
{
return 0;
}
}
}
}
}
}
return 1;
}
int TongCucTri(float a[][100], int dong, int cot)
{
int S=0;
for (int i=0;i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (CucTri(a,dong,cot,i,j)==1)
{
S+=a[i][j];
}
}
}
return S;
}
346 m s lng gi tr hong hu trn ma trn. 1 pt hong hu khi n ln nht trn dng, ct v 2 ng cho
int XetDuongCheo(int a[][100],int dong,int cot, int i, int j)
{
int k,h; //k : dong, h : cot
for (k=i,h=j; k>=0 && h<cot; k--, h++)
{
if (a[k][h] > a[i][j])
{
return 0;
}
}

for (k=i+1, h=j-1; k<dong && h>=0; k++, h--)


{
if (a[k][h] > a[i][j])
{
return 0;
}
}
for (k=i-1, h =j-1; k>=0 && h>=0; k--,h--)
{
if (a[k][h] > a[i][j])
{
return 0;
}
}
for (k=i+1, h=j+1; k<dong && h<cot; k++, h++)
{
if (a[k][h] > a[i][j])
{
return 0;
}
}
return 1;
}
int XetCotDong(int a[][100],int dong,int cot, int i, int j)
{
for (int k=0; k<dong; k++ )
{
if (a[k][j]>a[i][j])
{
return 0;
}
}
for (k=0; k<cot; k++ )
{
if (a[i][k]>a[i][j])
{
return 0;
}
}
return 1;
}
int XetTongQuat(int a[][100],int dong,int cot, int i, int j)
{
if (XetCotDong(a,dong,cot,i,j)==1)
if (XetDuongCheo(a,dong,cot,i,j)==1)
return 1;
else
return 0;
return 0;
}
int DemHoangHau(int a[][100], int dong,int cot)
{
int dem=0;
for (int i=0; i<dong; i++)

{
for (int j=0; j<cot; j++)
{
if (XetTongQuat(a,dong,cot,i,j) == 1)
{
dem ++;
}
}

//la hoang hau

}
return dem;
}
347 m s lng yn nga.1 pt yn nga khi n ln nht trn dng, nh nht trn ct
int XetCotDong(int a[][100],int dong,int cot, int i, int j)
{
for (int k=0; k<dong; k++ )
{
if (a[k][j]<a[i][j])
{
return 0;
}
}
for (k=0; k<cot; k++ )
{
if (a[i][k]>a[i][j])
{
return 0;
}
}
return 1;
}
int DemYenNgua(int a[][100], int dong,int cot)
{
int dem=0;
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (XetCotDong(a,dong,cot,i,j) == 1)
{
dem ++;
}
}
}
return dem;
}
K thut t C Hiu
348 Ktra ma trn c s dng ko
int Ktra(int a[][100],int dong,int cot)
{
int flag = 0;
for (int i=0; i<dong; i++)
{
for (int j=0;j<cot;j++)

{
if (a[i][j]>0)
{
flag=1;
break;
}
}
}
return flag;
}
349 Ktra ma trn c s hon thin ko
int sohoanthien(int n)
{
int tong=0;
for (int i=1 ; i<n; i++)
if(n%i==0)
tong = tong + i;
if (tong == n)
return 1;
return 0;
}
int Ktra(int a[][100],int dong,int cot)
{
int flag = 0;
for (int i=0; i<dong; i++)
{
for (int j=0;j<cot;j++)
{
if (sohoanthien(a[i][j])==1)
{
flag=1;
break;
}
}
}
return flag;
}
350 Ktra ma trn c s l ko
int Ktra(int a[][100],int dong,int cot)
{
int flag = 0;
for (int i=0; i<dong; i++)
{
for (int j=0;j<cot;j++)
{
if (a[i][j]%2!=0)
{
flag=1;
break;
}
}
}
return flag;
}

351 Ktra ma trn c ton dng ko


int Ktra(int a[][100],int dong,int cot)
{
int flag = 1;
for (int i=0; i<dong; i++)
{
for (int j=0;j<cot;j++)
{
if (a[i][j]<0)
{
flag=0;
break;
}
}
}
return flag;
}
352 Ktra 1 hng ma trn c tng dn hay ko
int Ktra(int a[][100],int dong,int cot, int DongCanTinh)
{
int flag = 1;
//coi nh? dng t?ng
for (int j=0;j<cot-1;j++)
{
if (a[DongCanTinh][j]>a[DongCanTinh][j+1])
{
flag=0; //dng ko t?ng
break;
}
}
return flag;
}
353 Ktra 1 ct ma trn c gim dn ko
int Ktra(int a[][100],int dong,int cot, int CotXet)
{
int flag = 1;
for (int i=0;i<dong-1;i++)
{
if (a[i][CotXet]<a[i+1][CotXet])
{
flag=0;
break;
}
}
return flag;
}
354 Ktra cc gtr trong ma trn c gim dn theo ct v dng hay ko
int Ktra(int a[][100],int dong,int cot)
{
int flag =1;
int i,j;
//Ktra dong truoc
for (i=0;i<dong;i++)
{
for (j=0; j<cot-1;j++)

{
if (a[i][j]<a[i][j+1])
{
flag=0;
break;
}
}
}
//Ktra cot sau
for (j=0; j<cot;j++)
{
for (i=0; i<dong-1;i++)
{
if (a[j][i]<a[j][i+1])
{
flag=0;
break;
}
}
}
return flag;
}
355 Lit k cc dng ton m trong ma trn cc s thc
void LietKe(float a[][100],int dong,int cot)
{
int i,j,flag;
//Ktra dong truoc
for (i=0;i<dong;i++)
{
for (flag =1,j=0; j<cot;j++)
{
if (a[i][j]>0)
{
flag=0;
break;
}
}
if (flag == 1)
{
printf("\nDong a[%d] toan am : ",i);
for (j=0;j<cot;j++)
{
printf(" %.2f ",a[i][j]);
}
}
}
}
356 Lit k ch s cc dng cha ton gi tr chn
void LietKe(int a[][100],int dong,int cot)
{
int i,j,flag;
//Ktra dong truoc
for (i=0;i<dong;i++)
{

for (flag =1,j=0; j<cot;j++)


{
if (a[i][j]%2!=0)
{
flag=0;
break;
}
}
if (flag == 1)
{
printf("\nDong a[%d] toan chan ",i);
}
}
}
357 Lit k dng cha s nguyn t
void LietKe(int a[][100],int dong,int cot)
{
int i,j,flag;
for (i=0;i<dong;i++)
{
for (flag =0,j=0; j<cot;j++)
{
if (SoNguyenTo(a[i][j])==1)
{
flag=1;
break;
}
}
if (flag == 1)
{
printf("\nDong a[%d] co chua so nguyen to ",i);
}
}
}
358 lit k cc dng c cha gi tr chn
void LietKe(int a[][100],int dong,int cot)
{
int i,j,flag;
for (i=0;i<dong;i++)
{
for (flag =0,j=0; j<cot;j++)
{
if (a[i][j]%2==0)
{
flag=1;
break;
}
}
if (flag == 1)
{
printf("\nDong a[%d] co chua chan ",i);
}
}
}

359 Lit k cc dng c cha gi tr m


void LietKe(int a[][100],int dong,int cot)
{
int i,j,flag;
for (i=0;i<dong;i++)
{
for (flag =0,j=0; j<cot;j++)
{
if (a[i][j] <0)
{
flag=1;
break;
}
}
if (flag == 1)
{
printf("\nDong a[%d] co chua gia tri am ",i);
}
}
}
360 Lit k cc ct cha s chnh phng
void LietKe(int a[][100],int dong,int cot)
{
int i,j,flag;
for (j=0;j<cot;j++)
{
for (flag =0,i=0; i<dong;i++)
{
if (sochinhphuong(a[i][j])==1)
{
flag=1;
break;
}
}
if (flag == 1)
{
printf("\nCot a[%d] co chua so chinh phuong ",j);
}
}
}
361 Lit k cc dng tha: c gi tr m, dng v 0 (pt trung ha)
void LietKe(int a[][100],int dong,int cot)
{
int i,j;
for (i=0;i<dong;i++)
{
if (n>2)
{
int flag[3] = {0};
for (j=0; j<cot;j++)
{
if (a[i][j]<0)
{
flag[0] = 1;

}
else if (a[i][j]==0)
{
flag[1] = 1;
}
else if (a[i][j]>0)
{
flag[2] = 1;
}
if (flag[0]+flag[1]+flag[2]==3)
{
printf("\nDong a[%d] co ptu am, duong, 0",i);
break;
}
}
}
}
}
362 Lit k cc dng gim dn
void LietKe(int a[][100],int dong,int cot)
{
int i,j,flag;
for (i=0;i<dong;i++)
{
for (flag =1,j=0; j<cot-1;j++)
{
if (a[i][j]<a[i][j+1])
{
flag = 0;
break;
}
}
if (flag == 1)
{
printf("\nDong a[%d] giam",i);
}
}
}
363 Lit k cc ct tng dn
void LietKe(int a[][100],int dong,int cot)
{
int i,j,flag;
for (j=0;j<cot;j++)
{
for (flag =1,i=0; i<dong-1;i++)
{
if (a[i][j]>a[i+1][j])
{
flag = 0;
break;
}
}

if (flag == 1)
{
printf("\nCot a[%d] tang",j);
}
}
}
364 Cho 2 ma trn A,B. Ktra ma trn A c l ma trn con ca B ko?
int KiemTra(int a[][100], int donga, int cota, int b[][100], int dongb, int cotb)
{
int i,j,k,h,flag=0,s,t;
for (i=0; i<donga; i++)
{
for (j=0;j<cota;j++)
{
if (donga-i>=dongb && cota-j>=cotb && a[i][j]==b[0][0])
{
for (flag=1,s=i,k=0;k<dongb;k++,s++)
{
for (h=0,t=j;h<cotb;h++,t++)
{
if (b[k][h]!=a[s][t])
{
flag =0;
break;
}
}
if (flag == 0)
break;
else
return 1;
}
}
}
}
return 0;
}
365 m s ln xut hin ca ma trn A trong ma trn B?
int Dem(int a[][100], int donga, int cota, int b[][100], int dongb, int cotb)
{
int i,j,k,h,flag=1,s,t,dem=0;
for (i=0; i<donga; i++)
{
for (j=0;j<cota;j++)
{
if (donga-i>=dongb && cota-j>=cotb && a[i][j]==b[0][0])
{
for (s=i,k=0;k<dongb;k++,s++)
{
for (h=0,t=j;h<cotb;h++,t++)
{
if (b[k][h]!=a[s][t])
{
flag =0;
break;

}
}
if (flag == 0)
break;
}
if (flag == 1)
{
dem++;
}
}
}
}
return dem;
}
K thut t lnh canh
366 Tm s chn u tin trong ma trn
int GiaTriCanTim(int a[][100], int cot, int dong)
{
for (int i=0; i<dong; i++)
{
for(int j=0; j<cot; j++)
{
if (a[i][j]%2==0)
{
return a[i][j];
}
}
}
return -1;
}
367 Tm max trong ma trn
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int Max = a[0][0];
for (int i=0; i<dong; i++)
{
for(int j=0; j<cot; j++)
{
Max = (Max>a[i][j])?Max:a[i][j];
}
}
return Max;
}
368 Tm gi tr ln th 2 trong ma trn (max2)
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int Max=a[0][0];
for (int i=0; i<dong; i++)
{
for(int j=0; j<cot; j++)
{
Max = (Max>a[i][j])?Max:a[i][j];

}
}
int Max2 = a[0][0];
for (i=0; i<dong; i++)
{
for(int j=0; j<cot; j++)
{
if (Max>Max2 && a[i][j]!=Max && Max2<a[i][j])
{
Max2 = a[i][j];
}
}
}
return Max2;
}
369 Tm s dng u tin trong ma trn
int GiaTriCanTim(int a[][100], int cot, int dong)
{
for (int i=0; i<dong; i++)
{
for(int j=0; j<cot; j++)
{
if (a[i][j]>0)
{
return a[i][j];
}
}
}
return -1;
}
370 Tm gi tr m ln nht trong ma trn
int AmDauTien(int a[][100], int cot, int dong)
{
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (a[i][j]<0)
{
return a[i][j];
}
}
}
return 0;
}
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int AmMax = AmDauTien(a,cot,dong);
if (AmMax == 0)
{
return 0;
}

for (int i=0; i<dong;i++)


{
for (int j=0; j<cot; j++)
{
if (a[i][j]<0)
{
AmMax = (AmMax>a[i][j])?AmMax:a[i][j];
}
}
}
return AmMax;
}
371 Lit k cc dng c cha max
int GiaTriMax(int a[][100], int cot, int dong)
{
int Max = a[0][0];
for (int i=0; i<dong; i++)
{
for(int j=0; j<cot; j++)
{
Max = (Max>a[i][j])?Max:a[i][j];
}
}
return Max;
}
void LietKe(int a[][100], int cot, int dong)
{
int Max = GiaTriMax(a,cot,dong);
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)
{
if (a[i][j]==Max)
{
printf("\nDong [%d] chua max: ", i);
for (j=0; j<cot; j++)
{
printf("%4d", a[i][j]);
}
}
}
}
}
372 Tm gi tr ln nht trn 1 dng
void LietKe(int a[][100], int cot, int dong)
{
for (int i=0; i<dong;i++)
{
int Max = a[i][0];
for (int j=0; j<cot; j++)
{
Max = (Max>a[i][j])?Max:a[i][j];

}
printf("\nDong %d: ",i) ;
printf("Gia tri max %d",Max);
}
}
373 Tm gi tr nh nht trn 1 ct
void LietKe(int a[][100], int cot, int dong)
{
for (int i=0; i<cot;i++)
{
int Min = a[0][i];
for (int j=0; j<dong; j++)
{
Min = (Min<a[j][i])?Min:a[j][i];
}
printf("\nCot %d: ",i) ;
printf("Gia tri min %d",Min);
}
}
374 Tm s nguyn t u tin
int SoNguyenTo(int a)
{
if (a<=1)
{
return 0;
}
for (int i=2; i<a; i++)
{
if (a%i==0)
{
return 0;
}
}
return 1;
}
int GiaTriCanTim(int a[][100], int cot, int dong)
{
for (int i=0; i<dong; i++)
{
for(int j=0; j<cot; j++)
{
if (SoNguyenTo(a[i][j])==1)
{
return a[i][j];
}
}
}
return -1;
}
375 Tm s chn ln nht
int ChanDauTien(int a[][100], int cot, int dong)

{
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (a[i][j]%2==0)
{
return a[i][j];
}
}
}
return -1;
}
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int ChanMax = ChanDauTien(a,cot,dong);
if (ChanMax == -1)
{
return -1;
}
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)
{
if (a[i][j]%2==0)
{
ChanMax = (ChanMax>a[i][j])?ChanMax:a[i][j];
}
}
}
return ChanMax;
}
376 Tm s dng nh nht
int DuongDauTien(int a[][100], int cot, int dong)
{
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (a[i][j]>0)
{
return a[i][j];
}
}
}
return -1;
}
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int DuongMin = DuongDauTien(a,cot,dong);
if (DuongMin == -1)
{
return -1;

}
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)
{
if (a[i][j]>0)
{
DuongMin = (DuongMin<a[i][j])?DuongMin:a[i][j];
}
}
}
return DuongMin;
}
377 Tm s nguyn t ln nht
int SoNguyenTo(int a)
{
if (a<=1)
{
return 0;
}
for (int i=2; i<a; i++)
{
if (a%i==0)
{
return 0;
}
}
return 1;
}
int SoNguyenToDauTien(int a[][100], int cot, int dong)
{
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (SoNguyenTo(a[i][j])==1)
{
return a[i][j];
}
}
}
return -1;
}
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int SoNguyenToMax = SoNguyenToDauTien(a,cot,dong);
if (SoNguyenToMax == -1)
{
return -1;
}
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)

{
if (SoNguyenTo(a[i][j])==1)
{
SoNguyenToMax = (SoNguyenToMax>a[i][j])?SoNguyenToMax:a[i][j];
}
}
}
return SoNguyenToMax;
}
378 Tm 1 ch s xut hin nhiu nht
void ChuSo(int n, int b[])
{
int DonVi;
n = abs(n);
do
{
DonVi = n%10;
b[DonVi]++;
n=n/10;
} while (n>0);
}
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int b[10] = {0};
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)
{
ChuSo(a[i][j],b);
}
}
int ChuSoNhieuNhat = 0;
for (i=1; i<10; i++)
{
if (b[ChuSoNhieuNhat] < b[i])
{
ChuSoNhieuNhat = i;
}
}
return ChuSoNhieuNhat;
}
379 m s lng min
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int dem = 0;
int Min = a[0][0];
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)
{
if (Min == a[i][j])
{

dem ++ ;
}
else if (Min > a[i][j])
{
Min = a[i][j];
dem = 1;
}
}
}
return dem;
}
380 m s lng chn nh nht
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int dem = 0;
int Min = a[0][0];
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)
{
if (Min == a[i][j])
{
dem ++ ;
}
else if (Min > a[i][j])
{
Min = a[i][j];
dem = 1;
}
}
}
return dem;
}
381 Tm gi tr xut hin nhiu nht
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int flag[100][100] = {0};
int GiaTri , Dem = 0,Dem1=0;
for (int i=0; i<dong; i++)
{
for(int j=0; j<cot; j++)
{
if (flag[i][j]==0)
{
for (int k=i; k<dong; k++)
{
for (int h=0; h<cot;h++)
{
if (flag[k][h]==0)
{
if (a[i][j] == a[k][h])
{

flag[k][h] = 1;
Dem++;
}
}
}
}
if (Dem > Dem1)
{
Dem1 = Dem;
GiaTri = a[i][j];
Dem = 0;
}
}
}
}
return GiaTri;
}
382 Tm s chnh phng ln nht
int SoChinhPhuong(int n)
{
int a = sqrt (n);
if (a*a == n)
{
return 1;
}
return 0;
}
int SoChinhPhuongDauTien(int a[][100], int cot, int dong)
{
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (SoChinhPhuong(a[i][j])==1)
{
return a[i][j];
}
}
}
return -1;
}
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int SoChinhPhuongMax = SoChinhPhuongDauTien(a,cot,dong);
if (SoChinhPhuongMax == -1)
{
return -1;
}
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)
{
if (SoChinhPhuong(a[i][j])==1)

{
SoChinhPhuongMax = (SoChinhPhuongMax>a[i][j])?SoChinhPhuongMax:a[i][j];
}
}
}
return SoChinhPhuongMax;
}
383 Tm s han thin nh nht
int sohoanthien(int n)
{
int tong=0;
for (int i=1 ; i<n; i++)
if(n%i==0)
tong = tong + i;
if (tong == n)
return 1;
return 0;
}
int SoHoanThienDauTien(int a[][100], int cot, int dong)
{
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot; j++)
{
if (SoHoanThien(a[i][j])==1)
{
return a[i][j];
}
}
}
return -1;
}
int GiaTriCanTim(int a[][100], int cot, int dong)
{
int SoHoanThienMin = SoHoanThienDauTien(a,cot,dong);
if (SoHoanThienMin == -1)
{
return -1;
}
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)
{
if (SoHoanThien(a[i][j])==1)
{
SoHoanThienMin = (SoHoanThienMin<a[i][j])?SoHoanThienMin:a[i][j];
}
}
}
return SoHoanThienMin;
}

384 Tm cc ch s xut hin nhiu nht trong ma trn


void ChuSo(int n, int b[])
{
int DonVi;
n = abs(n);
do
{
DonVi = n%10;
b[DonVi]++;
n=n/10;
} while (n>0);
}
void GiaTriCanTim(int a[][100], int cot, int dong)
{
int b[10] = {0};
for (int i=0; i<dong;i++)
{
for (int j=0; j<cot; j++)
{
ChuSo(a[i][j],b);
}
}
int ChuSoNhieuNhat = 0;
for (i=1; i<10; i++)
{
if (b[ChuSoNhieuNhat] < b[i])
{
ChuSoNhieuNhat = i;
}
}
printf("Cac chu so xuat hien nhieu nhat: ");
for (i=0; i<10; i++)
{
if (b[ChuSoNhieuNhat] == b[i])
{
printf("%4d", i);
}
}
}
385 Lit k cc dng c tng ln nht
int tong(int a[], int cot)
{
int s=0;
for (int i=0; i<cot; i++)
{
s+=a[i];
}
return s;
}
void LietKe(int a[][100], int cot, int dong)
{
int b[100];
for (int i=0; i<dong; i++)

{
b[i] = tong(a[i],cot);
}
//Tong Max
int Max = b[0];
for (i=1; i<dong; i++)
{
Max = (Max>b[i])?Max:b[i];
}
//Liet ke Tong Max
for (i = 0; i< dong ;i++)
{
if (Max == b[i])
{
printf("\nDong %d co tong ptu lon nhat la %d", i,Max);
}
}
}
386 Lit k cc ct c tng nh nht
void LietKe(int a[][100], int cot, int dong)
{
int b[100] = {0};
for (int i=0; i<cot; i++)
{
for (int j=0; j<dong; j++)
{
b[i]+=a[j][i];
}
}
//Tong Min
int Min = b[0];
for (i=1; i<cot; i++)
{
Min = (Min<b[i])?Min:b[i];
}
//Liet ke Tong Min
for (i = 0; i< cot ;i++)
{
if (Min == b[i])
{
printf("\nCot %d co tong ptu nho nhat la %d", i,Min);
}
}
}
387 Lit k cc dng c nhiu s chn nht
void LietKe(int a[][100], int cot, int dong)
{
int dem[100] = {0};
for (int i=0; i<dong; i++)
for (int j=0; j<cot; j++)
if (a[i][j]%2==0)
dem[i]++;

int Max = dem[0];


for (i=1; i<dong; i++)
Max = (Max>dem[i])?Max:dem[i];
for (i = 0; i< dong ;i++)
if (Max == dem[i])
printf("\nDong %d co so chan nhieu nhat la %d", i,Max);
}
388 Lit k cc dng c nhiu s nguyn t nht
int SoNguyenTo(int a)
{
if (a<=1)
{
return 0;
}
for (int i=2; i<a; i++)
{
if (a%i==0)
{
return 0;
}
}
return 1;
}
void LietKe(int a[][100], int cot, int dong)
{
int dem[100] = {0};
for (int i=0; i<dong; i++)
for (int j=0; j<cot; j++)
if (SoNguyenTo(a[i][j])==1)
dem[i]++;
int Max = dem[0];
for (i=1; i<dong; i++)
Max = (Max>dem[i])?Max:dem[i];
for (i = 0; i< dong ;i++)
if (Max == dem[i])
printf("\nDong %d co so nguyen to nhieu nhat la %d", i,Max);
}
389 Lit k cc dng c nhiu s han thin nht
int SoHoanThien(int n)
{
int tong=0;
for (int i=1 ; i<n; i++)
if(n%i==0)
tong = tong + i;
if (tong == n)
return 1;
return 0;
}
void LietKe(int a[][100], int cot, int dong)
{
int dem[100] = {0};
for (int i=0; i<dong; i++)

for (int j=0; j<cot; j++)


if (SoHoanThien(a[i][j])==1)
dem[i]++;
int Max = dem[0];
for (i=1; i<dong; i++)
Max = (Max>dem[i])?Max:dem[i];
for (i = 0; i< dong ;i++)
if (Max == dem[i])
printf("\nDong %d co so nguyen to nhieu nhat la %d", i,Max);
}
390 * Lit k cc ct c nhiu ch s nht
void LietKe(int a[][100], int cot, int dong)
{
int dem[100] = {0};
for (int i=0; i<cot; i++)
{
for (int j=0; j<dong; j++)
{
int tam;
tam = abs(a[j][i]);
do
{
dem[i]++;
tam=tam/10;
} while (tam>0);
}
}
int Max = dem[0];
for (i=1; i<cot; i++)
Max = (Max>dem[i])?Max:dem[i];
for (i = 0; i<cot ;i++)
if (Max == dem[i])
printf("\nCot %d co nhieu chu so nhat la %d", i,Max);
}
391 * Tm ma trn con c tng ln nht
K thut x l ma trn
392 Hon v hai dng ma trn
void HoanVi2Dong(int a[][100],int dong, int d1, int d2)
{
int temp[100];
for (int i=0; i<cot; i++)
{
temp[i] = a[d1][i];
a[d1][i] = a[d2][i];
a[d2][i] = temp[i];
}
}
393 Hon v hai ct ma trn
void HoanVi2Cot(int a[][100],int cot,int c1, int c2)
{
int temp[100];
for (int i=0; i<dong; i++)

{
temp[i] = a[i][c1];
a[i][c1] = a[i][c2];
a[i][c2] = temp[i];
}
}
394 Dch xung xoay vng cc hng trong ma trn
void DichXuong(int a[][100], int cot, int dong)
{
int temp[100];
for (int i=0; i<dong; i++)
{
temp[i] = a[cot-1][i];
}
for (i = cot-1; i>=1; i--)
{
for (int j=0; j<dong; j++)
{
a[i][j] = a[i-1][j];
}
}
for (i=0; i<dong; i++)
{
a[0][i] = temp[i] ;
}
}
395 Dch ln xoay vng cc hng trong ma trn
void DichLen(int a[][100], int cot, int dong)
{
int temp[100];
for (int i=0; i<cot; i++)
{
temp[i] = a[0][i];
}
for (i = 0; i<dong-1; i++)
{
for (int j=0; j<cot; j++)
{
a[i][j] = a[i+1][j];
}
}
for (i=0; i<cot; i++)
{
a[dong-1][i] = temp[i] ;
}
}
396 Dch tri xoay vng cc ct trong ma trn
void DichTrai(int a[][100], int cot, int dong)
{
int temp[100];
for (int i=0; i<dong; i++)

{
temp[i] = a[i][0];
}
for (int j = 0; j<cot-1; j++)
{
for (i=0; i<dong; i++)
{
a[i][j] = a[i][j+1];
}
}
for (i=0; i<dong; i++)
{
a[i][cot-1] = temp[i] ;
}
}
397 Dch phi xoay vng cc ct trong ma trn
void DichPhai(int a[][100], int cot, int dong)
{
int temp[100];
for (int i=0; i<dong; i++)
{
temp[i] = a[i][cot-1];
}
for (int j = cot-1; j>0; j--)
{
for (i=0; i<dong; i++)
{
a[i][j] = a[i][j-1];
}
}
for (i=0; i<dong; i++)
{
a[i][0] = temp[i] ;
}
}
398 Dch phi xoay vng theo chiu kim ng h cc gi tr nm trn bin
void DichPhaiXoayVong(int a[][100], int n, int m) // n dng m c?t
{
int i, j; //i dong , j cot
int tam = a[0][0];
for (i=0,j=i; i< n-1; i++) //n=4, m = 5
{
a[i][j] = a[i+1][j]; //i = 3 --> dung, j =0
}
for (j,i; j< m -1; j++ )
{
a[i][j] = a[i][j+1];
//i=3 --> j = 4
}
for (i,j; i>0; i--)
{
a[i][j] = a[i-1][j];
//i = 0 --> j =4
}

for (i,j; j>1; j--)


{
a[i][j] = a[i][j-1];
}
a[0][1] = tam;

//i = 0 --> j = 1

}
399 Dch tri xoay vng theo chiu kim ng h cc gi tr nm trn bin
void DichTraiXoayVong(int a[][100], int cot, int dong)
{
int i, j;
int tam = a[0][0];
for (i=0,j=0; j< cot-1; j++)
{
a[i][j] = a[i][j+1];
}
for (i,j; i< dong-1; i++ )
{
a[i][j] = a[i+1][j];
}
for (i,j; j>0; j--)
{
a[i][j] = a[i][j-1];
}
for (i,j; i>1; i--)
{
a[i][j] = a[i-1][j];
}
a[1][0] = tam;
}
400 Xa 1 dng trong ma trn
void Xoa(int a[][100], int cot, int &dong)
{
printf("Nhap chi so dong ban muon xoa");
int x,i,j;
do
{
scanf("%d", &x);
} while ( x<0 || x>=dong);
for ( i=x;i<dong-1;i++ )
{
for (j=0; j<cot;j++)
{
a[i][j] = a[i+1][j];
}
}
dong--;
}
401 Xa 1 ct trong ma trn
void Xoa(int a[][100], int &cot, int dong)
{
printf("Nhap chi so cot ban muon xoa");

int x,i,j;
do
{
scanf("%d", &x);
} while ( x<0 || x>=cot);
for ( i=x;i<cot-1;i++ )
{
for (j=0; j<dong;j++)
{
a[j][i] = a[j][i+1];
}
}
cot--;
}
402 Xoay ma trn 1 gc 90
void XoayMaTran(int a[][100], int cot, int dong)
{
for (int i=0;i<cot; i++)
{
for (int j=dong-1; j>=0; j--)
{
printf("%4d",a[j][i]);
}
printf("\n");
}
}
403 Xoay ma trn 1 gc 180
void XoayMaTran(int a[][100], int cot, int dong)
{
for (int i=dong-1;i>=0; i--)
{
for (int j=0; j<cot; j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}
404 Xoay ma trn 1 gc 270
void XoayMaTran(int a[][100], int cot, int dong)
{
for (int i=cot-1;i>=0; i--)
{
for (int j=0; j<dong; j++)
{
printf("%4d",a[j][i]);
}
printf("\n");
}
}

405 Chiu gng ma trn theo trc dc


void XoayMaTran(int a[][100], int cot, int dong)
{
for (int i=0;i<dong; i++)
{
for (int j=cot-1; j>=0; j--)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}
406 Chiu gng ma trn theo trc ngang
void XoayMaTran(int a[][100], int cot, int dong)
{
for (int i=dong-1;i>=0; i--)
{
for (int j=0; j<cot; j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}
K thut sp xp
407 Sp xp pt trn 1 dng tng dn t tri sang phi
void SapXep(int a[][100], int cot, int dong)
{
int x;
printf("Nhap dong muon sap xep: ");
scanf("%d",&x);
for (int j=0; j<cot-1; j++)
{
for (int k=j+1; k<cot;k++)
{
if (a[x][j]>a[x][k])
{
int temp = a[x][j];
a[x][j] = a[x][k];
a[x][k] = temp;
}
}
}
}
408 Sp xp pt trn 1 dng gim dn t tri sang phi
void SapXep(int a[][100], int cot, int dong)
{
int x;
printf("Nhap dong muon sap xep: ");
scanf("%d",&x);
for (int j=0; j<cot-1; j++)

{
for (int k=j+1; k<cot;k++)
{
if (a[x][j]<a[x][k])
{
int temp = a[x][j];
a[x][j] = a[x][k];
a[x][k] = temp;
}
}
}
}
409 Sp xp pt trn 1 ct tng dn t trn xung di
void SapXep(int a[][100], int cot, int dong)
{
int x;
printf("Nhap cot muon sap xep: ");
scanf("%d",&x);
for (int i=0; i<dong-1; i++)
{
for (int j=i+1; j<dong;j++)
{
if (a[i][x]>a[j][x])
{
int temp = a[i][x];
a[i][x] = a[j][x];
a[j][x] = temp;
}
}
}
}
410 Sp xp pt trn 1 ct gim dn t trn xung di
void SapXep(int a[][100], int cot, int dong)
{
int x;
printf("Nhap cot muon sap xep: ");
scanf("%d",&x);
for (int i=0; i<dong-1; i++)
{
for (int j=i+1; j<dong;j++)
{
if (a[i][x]<a[j][x])
{
int temp = a[i][x];
a[i][x] = a[j][x];
a[j][x] = temp;
}
}
}
}
411 Xut gi tr chn trong ma trn theo th t gim dn
412 Xut cc s nguyn t theo th t tng dn

413 Sp xp theo yu cu: Dng c ch s chn tng dn, l gim dn


void SapXep(int a[][100], int cot, int dong)
{
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot-1; j++)
{
for (int k=j+1; k<cot;k++)
{
if (i%2==0)
{
if (a[i][j]>a[i][k])
{
int temp = a[i][j];
a[i][j] = a[i][k];
a[i][k] = temp;
}
}
else
{
if (a[i][j]<a[i][k])
{
int temp = a[i][j];
a[i][j] = a[i][k];
a[i][k] = temp;
}
}
}
}
}
}
414 Sp xp theo yu cu: Ct c ch s chn gim t trn xung, l tng t trn xung
void SapXep(int a[][100], int cot, int dong)
{
for (int i=0; i<cot; i++)
{
for (int j=0; j<dong-1; j++)
{
for (int k=j+1; k<dong;k++)
{
if (i%2==0)
{
if (a[j][i]<a[j][i])
{
int temp = a[j][i];
a[j][i] = a[k][i];
a[k][i] = temp;
}
}
else
{
if (a[j][i]>a[j][i])
{

int temp = a[j][i];


a[j][i] = a[k][i];
a[k][i] = temp;
}
}
}
}
}
}
415 Sp xp pt tng dn theo hng v ct: Dng 2 phng php: s dng mng ph v ko dng mng ph
void GanMaTranVaoMang(int a[][10], int cot,int dong,int b[], int &nb)
{
for (int i=0;i<dong;i++)
{
for (int j=0; j<cot; j++)
{
b[nb] = a[i][j];
nb++;
}
}
}
void SapXepMangPhu(int b[], int nb) //S?p x?p t?ng d?n
{
for (int i=0; i<nb-1; i++)
{
for (int j=i+1; j<nb; j++)
{
if (b[i] > b[j])
{
int temp = b[i];
b[i] = b[j];
b[j] = temp;
}
}
}
}
void GanMangVaoMaTran(int a[][10], int cot,int dong,int b[])
{
int n=0;
for (int i=0;i<dong;i++)
{
for (int j=0; j<cot; j++)
{
a[i][j] = b[n];
n++;
}
}
}
void SapXep(int a[10][10], int cot, int dong)
{
int b[100],nb=0;
GanMaTranVaoMang(a,cot,dong,b,nb);
SapXepMangPhu(b,nb);

GanMangVaoMaTran(a,cot,dong,b);
}
416 Sp xp pt dng tng dn theo ct v dng. Dng 2 phng php: S dng mng ph v ko s dng mng
ph (nh bi 415 thm iu kin xt pt dng)
417 Sp xp pt chn gim dn theo ct v dng. Dng 2 phng php: S dng mng ph v ko s dng mng
ph (nh bi 415 thm iu kin xt pt chn v i du > thnh <)
418 Sp xp m tng dn, dng gim dn, 0 gi nguyn
void SapXepSoAm(int a[][10], int cot, int dong)
{
int i,j,k,h,d=0,temp;
for (i=0;i<dong;i++)
{
for (j=0; j<cot; j++)
{
if (a[i][j]<0)
{
for (k=i; k<dong; k++)
{
if (d==0)
h=j;
else
h=0;
for (; h<cot; h++)
{
if (a[i][j] > a[k][h] && a[k][h]<0)
{
temp = a[i][j];
a[i][j] = a[k][h];
a[k][h] = temp;
}
}
if (h==cot)
d=1;
}
d=0;
}
}
}
}
void SapXepSoDuong(int a[][10], int cot, int dong)
{
int i,j,k,h,d=0,temp;
for (i=0;i<dong;i++)
{
for (j=0; j<cot; j++)
{
if (a[i][j]>0)
{
for (k=i; k<dong; k++)
{
if (d==0)
h=j;

else
h=0;
for (; h<cot; h++)
{
if (a[i][j] < a[k][h] && a[k][h]>0)
{
temp = a[i][j];
a[i][j] = a[k][h];
a[k][h] = temp;
}
}
if (h==cot)
d=1;
}
d=0;
}
}
}
}
void SapXep(int a[][10], int cot, int dong)
{
SapXepSoAm(a,cot,dong);
SapXepSoDuong(a,cot,dong);
}
419 Sp xp chn tng, l gim (nh bi 418 ch sa li iu kin)
420 Sp xp cc gi tr nm trn bin ma trn tng dn
void GanBienVaoMang(int a[][10], int cot, int dong, int b[], int &n)
{
int i=0, j;
for (j=i; j< cot; j++)
{
b[n] = a[i][j];
n++;
}
for (i++,j--; i< dong; i++ )
{
b[n] = a[i][j];
n++;
}
for (i--,j--; j>=0; j--)
{
b[n] = a[i][j];
n++;
}
for (i--,j++; i>0; i--)
{
b[n] = a[i][j];
n++;
}
}
void SapXepMangTangDan(int b[], int n)
{

for (int i=0; i<n-1; i++)


{
for (int j=i+1; j<n;j++)
{
if (b[i]>b[j])
{
int temp=b[i];
b[i] = b[j];
b[j] = temp;
}
}
}
}
void GanMangVaoBien(int a[][10], int cot, int dong, int b[])
{
int i=0,j,n=0;
for (j=i; j< cot; j++)
{
a[i][j] = b[n];
n++;
}
for (i++,j--; i< dong; i++ )
{
a[i][j] = b[n];
n++;
}
for (i--,j--; j>=0; j--)
{
a[i][j] = b[n];
n++;
}
for (i--,j++; i>0; i--)
{
a[i][j] = b[n];
n++;
}
}
void SapXep(int a[][10], int cot, int dong)
{
int b[100], n=0;
GanBienVaoMang(a,cot,dong,b,n);
SapXepMangTangDan(b,n);
GanMangVaoBien(a,cot,dong,b);
}
421 Sp xp cc gi tr dng nm trn bin ma trn tng dn(nh bi 420 ch thm iu kin dng)
422 Sp xp cc dng da vo: tng cc pt trong 1 dng: sp tng dn.
void TongCacDong(int a[][10],int cot,int dong, int b[])
{
for (int i=0; i<dong; i++)
{
for (int j=0; j<cot; j++)
{
b[i]+=a[i][j];

}
}
}
void HoanVi2Dong(int a[][10],int cot, int d1, int d2)
{
int temp[10];
for (int i=0; i<cot; i++)
{
temp[i] = a[d1][i];
a[d1][i] = a[d2][i];
a[d2][i] = temp[i];
}
}
void SapXep(int a[][10], int cot, int dong)
{
int b[10] = {0};
TongCacDong(a,cot,dong,b);
for (int i=0; i<dong-1; i++)
{
for (int j=i+1; j<dong; j++)
{
if (b[i]>b[j])
{
HoanVi2Dong(a,cot,i,j);
int temp = b[i];
b[i] = b[j];
b[j] =temp;
}
}
}
}
423 Sp xp gi tr cc pt trong ma trn tng dn theo dng xon c (ma trn xon c)
#include <stdio.h>
#include <conio.h>
void NhapCotDong(int &cot,int &dong);
void NhapMangThayMaTran(int Mang[],int cot,int dong);
void XuatMangThayMaTran(int Mang[],int cot,int dong);
void SapXepMang1Chieu(int Mang[], int cot, int dong);
void ThietLapMaTranXoanOc(int Mang[],int MaTranXoanOc[][10], int cot, int dong);
void XuatMaTran(int a[][10], int cot,int dong);
void main()
{
int Mang[100];
int cot;
int dong;
NhapCotDong(cot,dong);
NhapMangThayMaTran(Mang,cot,dong); //Nh?p m?ng thay cho ma tr?n
printf("\n\tMa tran vua nhap vao: \n");
XuatMangThayMaTran(Mang,cot,dong);
//Xu?t m?ng theo ma tr?n
SapXepMang1Chieu(Mang,cot,dong);
//D t?ng v? tr trong ma tr?n theo d?ng xo?n ?c
int MaTranXoanOc[10][10];
ThietLapMaTranXoanOc(Mang,MaTranXoanOc,cot,dong);

printf("\n\tMa tran xoan oc:\n");


XuatMaTran(MaTranXoanOc,cot,dong);
getch();
}
void NhapCotDong(int &cot, int &dong)
{
printf("Nhap so cot: "); scanf("%d", &cot);
printf("Nhap so dong: "); scanf("%d", &dong);
}
void NhapMangThayMaTran(int Mang[],int cot,int dong)
{
for (int i=0, stt = 0; i<dong; i++ )
{
for (int j=0; j<cot; j++)
{
printf("\t\t%d/ [%d][%d] = ",stt+1, i, j);
scanf("%d", &Mang[stt]);
stt++;
}
}
}
void XuatMangThayMaTran(int Mang[],int cot,int dong)
{
printf("\t------------------------\n");
for (int i=0,stt = 0; i<dong; i++)
{
printf("\t");
for (int j=0; j<cot; j++)
{
printf("%4d", Mang[stt]);
stt++;
}
printf("\n");
}
printf("\t------------------------\n");
}
void SapXepMang1Chieu(int Mang[], int cot, int dong)
{
int temp;
for (int i=0;i <(cot*dong)-1; i++)
{
for (int j=i+1; j<(cot*dong); j++)
{
if(Mang[i]>Mang[j])
{
temp = Mang[i];
Mang[i]=Mang[j];
Mang[j]=temp;
}
}
}
}
void ThietLapMaTranXoanOc(int Mang[],int MaTranXoanOc[][10], int cot, int dong)
{

int dem = 0;
int i=0, j=0;
int DauTien=0;
int Tru=0;
do
{
i=DauTien;
for (j=i; j< cot - Tru; j++)
{
MaTranXoanOc[i][j] = Mang[dem];
dem++;
}
j--;
for (i++; i< dong - Tru; i++ )
{
MaTranXoanOc[i][j] = Mang[dem];
dem++;
}
i--;
for (j--; j>=Tru; j--)
{
MaTranXoanOc[i][j] = Mang[dem];
dem++;
}
Tru++;
j++;
for (i--; i>=Tru; i--)
{
MaTranXoanOc[i][j] = Mang[dem];
dem++;
}
DauTien++;
} while (dem!=cot*dong);
}
void XuatMaTran(int a[][10], int cot,int dong)
{
printf("\t------------------------\n");
for (int i=0; i<dong; i++)
{
printf("\t");
for (int j=0; j<cot; j++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
printf("\t------------------------\n");
}
424 Sp xp cc pt theo hnh ziczac
#include <stdio.h>
#include <conio.h>
void NhapCotDong(int &cot,int &dong);
void NhapMangThayMaTran(int Mang[],int cot,int dong);

void XuatMangThayMaTran(int Mang[],int cot,int dong);


void SapXepMang1Chieu(int Mang[], int cot, int dong);
void ThietLapMaTranZicZac(int Mang[],int MaTranZicZac[][10], int cot, int dong);
void XuatMaTran(int a[][10], int cot,int dong);
void main()
{
int Mang[100];
int cot;
int dong;
NhapCotDong(cot,dong);
NhapMangThayMaTran(Mang,cot,dong);
printf("\n\tMa tran vua nhap vao: \n");
XuatMangThayMaTran(Mang,cot,dong);
SapXepMang1Chieu(Mang,cot,dong);
int MaTranZicZac[10][10];
ThietLapMaTranZicZac(Mang,MaTranZicZac,cot,dong);
printf("\n\tMa tran Zic Zac:\n");
XuatMaTran(MaTranZicZac,cot,dong);
getch();
}
void NhapCotDong(int &cot, int &dong)
{
printf("Nhap so cot: "); scanf("%d", &cot);
printf("Nhap so dong: "); scanf("%d", &dong);
}
void NhapMangThayMaTran(int Mang[],int cot,int dong)
{
for (int i=0, stt = 0; i<dong; i++ )
{
for (int j=0; j<cot; j++)
{
printf("\t\t%d/ [%d][%d] = ",stt+1, i, j);
scanf("%d", &Mang[stt]);
stt++;
}
}
}
void XuatMangThayMaTran(int Mang[],int cot,int dong)
{
printf("\t------------------------\n");
for (int i=0,stt = 0; i<dong; i++)
{
printf("\t");
for (int j=0; j<cot; j++)
{
printf("%4d", Mang[stt]);
stt++;
}
printf("\n");
}
printf("\t------------------------\n");
}
void SapXepMang1Chieu(int Mang[], int cot, int dong)
{

int temp;
for (int i=0;i <(cot*dong)-1; i++)
{
for (int j=i+1; j<(cot*dong); j++)
{
if(Mang[i]>Mang[j])
{
temp = Mang[i];
Mang[i]=Mang[j];
Mang[j]=temp;
}
}
}
}
void ThietLapMaTranZicZac(int Mang[],int MaTranZicZac[][10], int cot, int dong)
{
int dem = 0;
int i=0, j=0;
do
{
for (i; i<dong ; i++)
{
MaTranZicZac[i][j] = Mang[dem];
dem++;
}
j++;
i--;
if (dem == cot*dong)
{
return;
}
for (i; i>-1; i--)
{
MaTranZicZac[i][j] = Mang[dem];
dem++;
}
i++;
j++;
} while (dem != cot*dong);
}
void XuatMaTran(int a[][10], int cot,int dong)
{
printf("\t------------------------\n");
for (int i=0; i<dong; i++)
{
printf("\t");
for (int j=0; j<cot; j++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
printf("\t------------------------\n");
}
425 Xut cc gi tr m gim dn (ma trn ko thay i sau khi xut)

Xy dng ma trn
426 Cho ma trn A.Hy to ma trn B,B[i][j] = abs(A[i][j])
void XayDungB(int a[][10], int n, int m, int b[][10])
{
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
b[i][j] = abs(a[i][j]);
}
}
}
427 Cho ma trn A.Hy to ma trn B,B[i][j] = ln nht dng i,ct j ca A
int MaxTaiITaiJ(int a[][10], int n, int m,int i, int j)
{
int LonNhat = a[i][0];
for (int k = 1; k<m; k++)
LonNhat = (LonNhat < a[i][k])?a[i][k]:LonNhat;
for (k = 0; k<n; k++)
LonNhat = (LonNhat < a[k][j])?a[k][j]:LonNhat;
return LonNhat;
}
void XayDungB(int a[][10], int n, int m, int b[][10])
{
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
b[i][j] = MaxTaiITaiJ(a,n,m,i,j);
}
}
}
428 Cho ma trn A.Hy to ma trn B,B[i][j] = s lng pt dng xung quanh A[i][j]
void XayDungB(int a[][10], int cot, int dong, int b[][10])
{
int dx[8]={-1,-1,-1, 0, 0, 1, 1, 1};
int dy[8]={-1, 0, 1,-1, 1,-1, 0, 1};
for (int i=0; i<dong; i++)
{
for (int j=0; j< cot; j++)
{
for (int k=0; k<8; k++)
{
if ((0<=dx[k]+i && dx[k]+i<dong) && (0<=dy[k]+j && dy[k]+j < cot))
{
if (a[dx[k]+i][dy[k]+j]>0)
{
b[i][j]++;
}
}
}

}
}
}

Chuyn Ma trn vung


429 Hm nhp ma trn vung s nguyn
430 Hm nhp ma trn vung s thc
431 Hm xut ma trn vung s nguyn
432 Hm xut ma trn vung s thc
437 Hm sp xp ma trn vung tng t trn xung di v t tri sang phi
void SapXep(int a[][10], int n)
{
for (int k=0; k<=n*n-2; k++)
for (int l=k+1; l<=n*n-1; l++)
if (a[k/n][k%n] > a[l/n][l%n])
{
int temp = a[k/n][k%n];
a[k/n][k%n] = a[l/n][l%n];
a[l/n][l%n] = temp;
}
}
[b]Tnh ton
438 Tng pt thuc ma trn tam gic trn (ko tnh ng cho) trong ma trn vung
439 Tng pt thuc ma trn tam gic di (ko tnh ng cho) trong ma trn vung
440 Tng pt trn ng cho chnh
int TongDuongCheoChinh(int a[][10], int n)
{
int S = 0;
for (int i=0; i<n;i++)
S+=a[i][i]
return S;
}
441 Tng pt trn ng cho ph
int TongDuongCheoPhu(int a[][10], int n)
{
int S = 0;
for (int i=0; i<n;i++)
S+=a[i][n-1-i]
return S;
}
442 Tng pt chn nm trn bin
int TongPTuChanTrenBienMaTranVuong(int a[][100], int n)
{
int s=0;
for (int i=0; i<n;i++)
{
if (a[0][i] %2 == 0) //Dng ??u 0
s+=a[0][i];
if (a[n-1][i] %2 == 0) //Dng cu?i n-1

s+=a[n-1][i];
if (a[i][0] %2 == 0) //C?t ??u 0
s+=a[i][0];
if (a[i][n-1] %2 == 0) //C?t cu?i n-1
s+=a[i][n-1];
}
return s;
}
K thut t lnh canh
443 Tm max trong ma trn tam gic trn
444 Tm min trong ma trn tam gic di
445 Tm max trn ng cho chnh
446 Tm max trn ng cho ph
447 Tm max nguyn t trong ma trn
int SoNguyenTo(int n)
{
if (n<=1)
{
return 0;
}
for (int i=2; i<n-1; i++)
{
if (n/i==0)
{
return 0;
}
}
return 1;
}
int SoNguyenToDauTien(int a[][10], int n)
{
for (int i=0; i<n;i++)
{
for (int j=0; j<n; j++)
{
if (SoNguyenTo(a[i][j])==1 )
{
return a[i][j];
}
}
}
return 0;
}
int SoNguyenToMax(int a[][10], int n)
{
int SoNguyenToLonNhat = SoNguyenToDauTien(a,n);
if (SoNguyenToLonNhat == 0)
{
return 0;
//ko co so nguyen to
}
for (int i=0; i<n;i++)
{
for (int j=0; j<n; j++)
{

if (SoNguyenTo(a[i][j])==1)
{
SoNguyenToLonNhat=(SoNguyenToLonNhat>a[i][j])?SoNguyenToLonNhat:a[i][j];
}
}
}
return SoNguyenToLonNhat;
}
448 Tm 2 gi tr gn nhau nht
void HaiGiaTriGanNhat(int a[][10], int n, int &X1, int &X2)
{
int KhoangCach = abs(a[0][0] - a[0][1]);
X1 = a[0][0]; //X1 va X2 la bien can tim
X2 = a[0][1];
int i;
int j;
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
if (i == n-1 && j == n-1)
{
break;
}
for (int k=i; k<n;k++)
{
for (int h=0; h<n; h++ )
{
if (k==i && h<=j)
{
continue;
}
if (KhoangCach > abs(a[i][j] - a[k][h]))
{
KhoangCach = abs(a[i][j] - a[k][h]);
X1 = a[i][j];
X2 = a[k][h];
}
}
}
}
}
}
449 * Cho ma trn vung A(n x n). Hy tm ma trn vung B(k x k) sao cho tng cc gi tr trn ma trn vung ny
l ln nht
K thut m
450 m s lng cp gi tr i xng nhau wa ng cho chnh
int DemCapGiaTriDoiXung(int a[][10], int n)
{
int dem = 0;
for (int i=1; i<n;i++)
for (int j=0; j<i; j++)

if (a[i][j]==a[j][i])
dem++;
return dem;
}
451 ??m s? l??ng dng gi?m
int KtraDongGiam(int a[], int n)
{
for (int i=0; i<n-1; i++)
{
if (a[i]<a[i+1])
{
return 0;
}
}
return 1;
}
int DemSoLuong(int a[][10], int n)
{
int dem = 0;
for (int i=0; i<n;i++)
{
if (KtraDongGiam(a[i],n)==1)
{
dem++;
}
}
return dem;
}
452 m pt cc i
int SoLuongPTuCucDai(int a[][10], int n)
{
int dem=0;
int di[8] = {-1,-1,-1,0,0,1,1,1};
int dj[8] = {-1,0,1,-1,1,-1,0,1};
for (int i=0; i<n;i++)
{
for (int j=0; j<n; j++)
{
int flag =1;
for (int k=0; k<8; k++)
{
if (i+di[k]>=0 && i+di[k]<=n-1 && j+dj[k]>=0 && j+dj[k]<=n-1)
{
if (a[i+di[k]][j+dj[k]]>a[i][j])
{
flag = 0;
break;
}
}
}
if (flag == 1)
{
dem++;
}

}
}
return dem;
}
453 m gi tr dng trn ng cho chnh
int SoLuongDuongCheoChinh(int a[][10], int n)
{
int dem=0;
for (int i=0; i<n;i++)
{
if (a[i][i]>0)
{
dem++;
}
}
return dem;
}
454 m s m trn ng cho ph
int SoLuongAm(int a[][10], int n)
{
int dem = 0;
for (int i=0; i<n;i++)
if (a[i][n-1-i]<0)
dem++;
return dem;
}
455 m s chn trong ma trn tam gic trn
K thut t c hiu
456 Ktra ng cho chnh c tng dn hay ko?
457 Ktra ma trn c i xng wa cho chnh ko?
458 ktra ma trn c i xng wa cho ph ko?
459 Ktra ma trn c phi l ma phng ko? Ma phng l khi tng pt trn cc dng, ct v 2 cho chnh ph bng
nhau
Sp xp
460 Sp cho chnh tng dn
461 Sp cho ph gim dn
462 Hon v 2 dng
463 Hon v 2 ct
464 sp cc dng tng dn theo tng dng
465 a chn v u ma trn vung
466 * Ma trn vung A(n x n) vi n >=3. Sp tam gic trn tng dn t trn xung di v t tri sang phi
467 * Ma trn vung A vi n>=3. Sp tam gic di gim dn t trn xung di v t tri sang phi
468 * Xy dng ma phng A
Cc php ton trn ma trn
469 Tng 2 ma trn
void Tong2MaTran(int a[][], int b[][], int c[][], int n, int m)
{
for (int i=0; i<n; i++)
{

for (int j=0; j<m; j++)


{
c[i][j] = a[i][j] + b[i][j];
}
}
}
470 Hiu 2 ma trn
void Hieu2MaTran(int a[][], int b[][], int c[][], int n, int m)
{
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
c[i][j] = a[i][j] - b[i][j];
}
}
}
471 Tch 2 ma trn
// mb = na; //dng b = ct a
// nb = ma; //ct b = dng a
// nc = na;
// mc = mb;
int GiaTriTungVTri(int a[][], int b[][], int m,int i, int j)
{
int T = 0;
for (int k=0 ; k<m; k++)
T += a[i][k]*b[k][j];
return T;
}
void Tich2MaTran(int a[][], int b[][], int c[][], int n, int m)
{
c = new int* [n];
for (int i=0; i<n; i++)
{
c[i] = new int [n];
for (int j=0; j<n; j++)
{
c[i][j] = GiaTriTungVTri(a,b,m,i,j);
}
}
}
472 * Ma trn nghch o
473 * nh thc ca ma trn
474 * To ma phng bc
-------------Ht----------------

You might also like