18. Viết hàm sắp xếp các phần tử lẻ tăng dần.
void HoanVi(int &x, int &y) { int t=x; x=y; y=t; } void LeTang(int a[], int n) { int i, j; for(int i=0; i<n-1; i++) if(a[i]%2!=0) for(j=i+1; j<n; j++) if(a[j]%2!=0 && a[j]<a[i]) HoanVi(a[j], a[i]); XuatMang(a, n); }
19. Viết hàm sắp xếp các phần tử chẵn giảm dần.
void HoanVi(int &x, int &y) { int t=x; x=y; y=t; } void ChanGiam(int a[], int n) { int i, j; for(int i=0; i<n-1; i++) if(a[i]%2==0) for(j=i+1; j<n; j++) if(a[j]%2==0 && a[i]<a[j]) HoanVi(a[i], a[j]); XuatMang(a, n); }
20. Viết hàm xóa phần tử tại vị trí lẻ trong mảng.
void Xoa_PhanTu_ViTriLe(int a[], int n) { for(int i=1; i<n; i++) { a[i]=a[i*2]; n--; } XuatMang(a, n); }
Mở rộng:
Xóa phần tử chẵn trong mảng.
void Xoa_PhanTu_ViTriChan(int a[], int n) { for(int i=0; i<n; i++) { a[i]=a[i*2+1]; n--; } XuatMang(a, n); }
21. Viết hàm xóa phần tử có giá trị lớn nhất trong mảng.
int Max(int a[], int n) { int max=a[0]; for(int i=1; i<n; i++) if(a[i]>max) max=a[i]; return max; } void Delete_Max(int a[], int &n, int vt) { for(int i=vt; i<n; i++) a[i]=a[i+1]; n--; } void Delete_All_Max(int a[], int &n) { int GTMax=Max(a, n); for(int i=0; i<n; i++) if(a[i]==GTMax) { Delete_Max(a, n, i); i--; } }
Tóm Tắt
Share this:
Thích bài này:
Thích
Đang tải…