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