{
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=1; i--)
{
for (int j=0; j
{
temp[i] = a[i][0];
}
for (int j = 0; j
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=dong);
for ( i=x;i
int x,i,j;
do
{
scanf("%d", &x);
} while ( x=cot);
for ( i=x;i
405 Chiếu gương ma trận theo trục dọc
void XoayMaTran(int a[][100], int cot, int dong)
{
for (int i=0;i=0; j--)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
}
406 Chiếu gương ma trận theo trục ngang
void XoayMaTran(int a[][100], int cot, int dong)
{
for (int i=dong-1;i>=0; i--)
{
for (int j=0; j
{
for (int k=j+1; k
413 Sắp xếp theo yêu cầu: Dòng có chỉ số chẵn tăng dần, lẻ giảm dần
void SapXep(int a[][100], int cot, int dong)
{
for (int i=0; i
int temp = a[j][i];
a[j][i] = a[k][i];
a[k][i] = temp;
}
}
}
}
}
}
415 Sắp xếp ptử tăng dần theo hàng và cột: Dùng 2 phương pháp: sử dụng mảng phụ và ko dùng mảng phụ
void GanMaTranVaoMang(int a[][10], int cot,int dong,int b[], int &nb)
{
for (int i=0;i
GanMangVaoMaTran(a,cot,dong,b);
}
416 Sắp xếp ptử dương tăng dần theo cột và dòng. Dùng 2 phương pháp: Sử dụng mảng phụ và ko sử dụng mảng
phụ (như bài 415 thêm điều kiện xét ptử dương)
417 Sắp xếp ptử chẵn giảm dần theo cột và dòng. Dùng 2 phương pháp: Sử dụng mảng phụ và ko sử dụng mảng
phụ (như bài 415 thêm điều kiện xét ptử chẵn và đổi dấu > thành
else
h=0;
for (; h0)
{
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 Sắp xếp chẵn tăng, lẻ giảm (như bài 418 chỉ sửa lại điều kiện)
420 Sắp xếp các giá trị nằm trên biên ma trận tăng dần
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=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 Sắp xếp các giá trị dương nằm trên biên ma trận tăng dần(như bài 420 chỉ thêm điều kiện dương)
422 Sắp xếp các dòng dựa vào: tổng các ptử trong 1 dòng: sắp tăng dần.
void TongCacDong(int a[][10],int cot,int dong, int b[])
{
for (int i=0; i
}
}
}
void HoanVi2Dong(int a[][10],int cot, int d1, int d2)
{
int temp[10];
for (int i=0; i