Có thể chèn phần tử tại bất kỳ vị trí: đầu, giữa, cuối mảng. Sau khi chèn, chỉ số các phần tử sau vị trí chèn tăng 1 (kích thước mảng không tự tăng, cần mảng đủ lớn).
Logic chèn phần tử
- Nhập kích thước mảng
- Nhập vị trí chèn (1-based)
- Nhập giá trị cần chèn
// Dịch các phần tử từ cuối về sau vị trí chèn
for(i = size-1; i >= pos-1; i--)
student[i+1] = student[i];
// Gán giá trị mới
student[pos-1] = value;
Chương trình hoàn chỉnh
#include <stdio.h>
int main() {
int student[40], pos, i, size, value;
printf("Nhập số phần tử mảng: ");
scanf("%d", &size);
printf("Nhập %d phần tử:\n", size);
for(i = 0; i < size; i++)
scanf("%d", &student[i]);
printf("Vị trí chèn (1-%d): ", size+1);
scanf("%d", &pos);
printf("Giá trị chèn: ");
scanf("%d", &value);
// Dịch mảng
for(i = size-1; i >= pos-1; i--)
student[i+1] = student[i];
student[pos-1] = value;
printf("Mảng sau khi chèn:\n");
for(i = 0; i <= size; i++)
printf("%d\n", student[i]);
return 0;
}
Kết quả chạy
Nhập số phần tử: 6
Nhập 6 phần tử: 12 23 34 45 56 67
Vị trí chèn: 3
Giá trị chèn: 48
Mảng sau khi chèn:
12
23
48
34
45
56
67