
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 * Liệt kê các cột có nhiều chữ số nhất
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 * Tìm ma trận con có tổng lớn nhất
Kĩ thuật xử lý ma trận
392 Hoán vị hai dòng ma trận
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 Hoán vị hai cột ma trận
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 Dịch xuống xoay vòng các hàng trong ma trận
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 Dịch lên xoay vòng các hàng trong ma trận
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 Dịch trái xoay vòng các cột trong ma trận
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 Dịch phải xoay vòng các cột trong ma trận
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 Dịch phải xoay vòng theo chiều kim đồng hồ các giá trị nằm trên biên
void DichPhaiXoayVong(int a[][100], int n, int m) // n dòng 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]; //i = 0 --> j = 1
}
a[0][1] = tam;
}
399 Dịch trái xoay vòng theo chiều kim đồng hồ các giá trị nằm trên biên
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 Xóa 1 dòng trong ma trận
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 Xóa 1 cột trong ma trận
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 trận 1 góc 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 trận 1 góc 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 trận 1 góc 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");
}
}