Thêm và chèn phần tử vào mảng trong C | Laptrinhcanban.com

HOME › >>

Thêm và chèn phần tử vào mảng trong C

Hướng dẫn cách thêm và chèn phần tử vào mảng trong C. Bạn sẽ học được cách thêm phần tử vào mảng cuối mảng trong C cũng như cách chèn phần tử vào mảng trong C vào vị trí bất kỳ sau bài học này.

Thêm và chèn phần tử vào mảng trong C

Thêm phần tử vào mảng trong C, hay còn gọi là chèn phần tử vào mảng trong C là xử lý nhằm thêm một phần tử vào một vị trí chỉ định như đầu mảng, giữa hoặc cuối trong mảng có sẵn.

Thêm và chèn phần tử vào mảng trong C

Khác với các ngôn ngữ lập trình khác thì mảng trong C có kích thước cố định được quyết định khi khai báo mảng, và chúng ta không thể thay đổi kích thước của mảng sau khi khai báo.

Bởi vậy khi thêm 1 phần tử vào mảng trong C, chúng ta cần chú ý mảng đó có đủ độ dài để chứa hết phần tử được thêm hay không. Nếu không đủ độ dài mà chúng ta vẫn cố thêm phần tử, hệ quả là sự cố tràn màn hình có thể bị xảy ra.

Lại nữa, nếu trong các ngôn ngữ lập trình khác, chúng ta có thể đơn giản sử dụng các hàm hoặc phương thức có sẵn, ví dụ như append() hoặc insert() trong Python chẳng hạn, thì chúng ta lại không có chức năng có sẵn nào trong thư viện chuẩn của C để làm điều này cả. Thay vào đó thì chúng ta sẽ phải tự tạo ra hàm thêm và chèn phần tử vào mảng trong C.

Thêm phần tử vào cuối mảng trong C

Chúng ta có thể thêm phần tử vào cuối mảng trong C trong trường hợp phần tử ở cuối mảng đó chưa được gán giá trị cụ thể. Đây là các mảng được tạo ra khi chúng ta khởi tạo hoặc khai báo mảng nhưng chưa chỉ định hết giá trị cho các phần tử trong mảng.

Lúc này, chúng ta đơn giản chỉ cần truy cập vào các phần tử chưa được gán giá trị cụ thể, và gán giá trị mới của phần tử vào là có thể thêm phần tử vào mảng ban đầu.
Thêm phần tử vào mảng trong C

Lấy ví dụ, chúng ta có một mảng có độ dài 6 nhưng mới chỉ có 4 phần tử được gán giá trị cụ thể. Khi đó, còn 2 phần tử chưa được gán giá trị cụ thể (đang có giá trị mặc định là NULL, được biểu diễn bởi số 0 ở dạng int), và chúng ta có thể thêm phần tử vào mảng ban đầu bằng cách gán giá trị mới cho chúng như sau:

#include <stdio.h>
int main(void){
/*Mảng ban đầu mới có 4 giá trị cụ thể được khởi tạo*/
/*Các vị trí khác chưa có giá trị cụ thể và chúng ta có thể thêm phần tử vào*/
int arr[6] = {1, 3, 4, 5};

printf("Mang ban dau:\n");
for(short i = 0; i < 6; i++) printf("%d ", arr[i]);

/*Thêm phần tử vào các vị trí cuối mảng chưa có giá trị cụ thể*/
arr[4] = 4;
arr[5] = 8;

printf("\nMang sau khi them phan tu:\n");
for(short i = 0; i < 6; i++) printf("%d ", arr[i]);
}

Kết quả thêm phần tủ vào mảng:

Mang ban dau:
1 3 4 5 0 0
Mang sau khi them phan tu:
1 3 4 5 6 7

Chèn phần tử vào mảng trong C vào vị trí bất kỳ

Ngoài cách thêm phần tử vào các vị trí cuối mảng chưa có giá trị cụ thể, thì chúng ta cũng có thể chèn phần tử vào mảng trong C tại một vị trí chỉ định bất kỳ. Với cách này, tất nhiên chúng ta cũng có thể thực hiện việc thêm phần tử vào cuối mảng trong C.

Các bước chèn phần tử vào mảng trong trường hợp này sẽ như sau:

  1. Dịch chuyển các phần tử từ vị trí cần chèn về phía cuối mảng 1 đơn vị, và làm trống vị trí cần chèn
  2. Chèn phần tử cần thêm vào vị trí trống mới tạo ở trên.

Chèn phần tử vào mảng trong C

Và chúng ta viết chương trình chèn phần tử vào mảng trong C vào vị trí bất kỳ như sau:

#include <stdio.h>

int main()
{
int array[100], position, c, n, value;
printf("Nhap so phan tu: ");
scanf("%d", &n);

printf("Nhap phan tu:\n");
for (c = 0; c < n; c++)
scanf("%d", &array[c]);

printf("Mang da nhap:");
for (c = 0; c < n; c++)
printf("%d ", array[c]);

printf("\nNhập vi tri chen phan tu: \n");
scanf("%d", &position);

printf("Nhập phan tu muon chen: \n");
scanf("%d", &value);

// Dịch chuyển các phần tử từ vị trí cần chèn (position) về phía sau 1 đơn vị
// Và làm trống vị trí position
for (c = n - 1; c >= position - 1; c--)
array[c+1] = array[c];

/*Chèn phần tử vào chỗ trống vừa tạo*/
array[position-1] = value;

printf("Mang sau khi chen:\n");
for (c = 0; c <= n; c++)
printf("%d\n", array[c]);

return 0;
}

Màn hình nhập liệu và kết quả chương trình sẽ như sau:

Nhap so phan tu: 4
Nhap phan tu:
5
6
7
9
Mang da nhap:5 6 7 9
Nhập vi tri chen phan tu:
3
Nhập phan tu muon chen:
888
Mang sau khi chen:
5
6
888
7
9

Nguồn tham khảo:

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách thêm và phần tử vào mảng trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo

URL Link

https://laptrinhcanban.com/c/lap-trinh-c-co-ban/mang-trong-c/them-phan-tu-vao-mang-trong-c/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.