Xóa vị trí x mảng 1 chiều trên ngôn ngữ C
Tìm vị trí x cần xóa sau đó tiến hành xóa giá trị x tại đó.
Các bước:
Bước 1: Cho i chạy từ vị trí x cần tìm đến cuối mảng trừ 1.
Bước 2: Gán a[vi trí] = a[vi trí + 1].
Bước 3: Lặp lại vòng for với điều kiện i < n – 1, nếu đúng thì ta tăng i và tiếp tục thực hiện bước 2, nếu sai thì n ta giảm 1 và thoát chương trình.
// Tim vi tri 1 phan tu int timx(int a[], int n, int x){ for(int i=0; i<n; i++){ if(x == a[i]) return i; } return -1; } // Xoa vi tri void xoavitri(int a[], int &n, int vitri){ for(int i=vitri; i<n-1; i++) a[i]=a[i+1]; n–; } |
Xem cách chương trình chạy:
x = 3
Vitri x= 7; 0 > 7
n = 10; 0 > 9
1 4 9 1 9 2 2 3 2 4
0 1 2 3 4 5 6 7 8 9
1: 1 4 9 1 9 2 2 2 2 4
2: 1 4 9 1 9 2 2 2 4 4
3: 1 4 9 1 9 2 2 2 4
Chạy:
Lần 1: i = 7 => a[7] = a[8]
Lần 2: i < 8 là đúng, I ++ = 8 => a[8] = a[9]
Lần 3: i < 8 là sai thì n — = 9 thoát chương trình