LATEST

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

Trong bài viết này, codehow sẽ hướng dẫn các bạn cách thêm và chèn phần tử vào mảng trong C / C++. Đây là bài tập giúp các bạn rèn luyện cách thao tác với mảng trong C / C++.

Việc thêm một phần tử vào mảng có thể là thêm vào đầu hoặc cuối mảng.

Ví dụ: mình có mảng Number = {1, 2, 3, 5, 6}, bây giờ mình thêm giá trị 9 vào đầu mảng thì Number = {9, 1, 2, 3, 5, 6}, tương tự như vậy cho giá trị cuối.

Tuy nhiên, bây giờ mình muốn chèn một giá trị vào vị trí số 4, thì không dùng cách trên được. Khi đó ta phải dịch chuyển các giá trị ở vị trí số 4 trở đi lên 1 vị trí. Trừa lại vị trí trống sô 4 để thêm giá trị vào.

Vậy làm thế nào để thực hiện điều đó, hãy bắt đầu cùng mình ngay thôi nhé.

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

Trong phần này mình sẽ thực hiện thêm và chèn phần tử vào mảng trong C / C++. Đầu tiên mình sẽ thực hiện chương trình thêm phần tử vào cuối mảng. Sau đó là chương trình chèn phần tử vào vị trí bất kì trong mảng.

Các chương trình đều được viết bằng hai ngôn ngữ C và C++, các bạn có thể tham khảo nhé.

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

Đầu tiên mình khai báo một mảng và khởi tạo giá trị cho mảng đó. Sau đó dùng vòng lặp for để in ra các phần tử trong mảng.

Đẻ chèn vào ví trí cuối cùng, mình giá trị vào vị trí cụ thể arr[4] và arr[5], vì mảng có 6 phần tử nên đây là hai vị trí cuối.

Dưới đây là hai chương trình mình đã viết sẵn bằng hai ngôn ngữ là C và C++.

Chương trình C:

#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, 2, 3, 11};
    
    printf("Mảng ban đầu:\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("\nMảng sau khi chèn vào cuối:\n");
    for(short i = 0; i < 6; i++) printf("%d ", arr[i]);

  printf("\n-----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
}

Kết quả:

bai28 01 PNG

Chương trình C++:

#include <iostream>
#include <math.h>
using namespace std;

int main()
{ 
    /*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, 2, 3, 5};
    
    cout<<"Mảng ban đầu:\n";
    for(short i = 0; i < 6; i++) cout<<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] = 7;
    arr[5] = 8;

    cout<<"\nMảng sau khi chèn vào cuối:\n";
    for(short i = 0; i < 6; i++) cout<<arr[i]<<" ";

    cout<<"\n-----------------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
    return 0;
}

Kết quả:

bai28 02 PNG

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

Để chèn phần tử vào một vị trí bất kì trong mảng C / C++, đầu tiên ta cần yêu cầu người dùng nhập vào số lượng phần tử. Sau đó là giá trị của các phần tử trong mảng.

int array[100], position, c, n, value;
   printf("Nhập vào số lượng phần tử: ");
   scanf("%d", &n);
 
   printf("Nhập giá trị cho các phần tử:\n");
   for (c = 0; c < n; c++)
      scanf("%d", &array[c]);

Tiếp đến yêu cầu người dùng nhập vào vị trí cần thêm vào mảng.

printf("\nNhập vị trí chèn phần tử: ");
   scanf("%d", &position);

Sau đó là nhập giá trị cho phần tử cần chèn.

printf("Nhập giá trị cần chèn: ");
   scanf("%d", &value);

Bây giờ đến bước quan trọng nhất, để chèn được vào vị trí đó, ta cần dịch chuyển các phần tử từ vị trí đó lùi về sau 1 vị trí. Nhu vậy khi thêm vào sẽ không bị đè lên giá trị của vị trí đó.

Sử dụng vòng lặp for để dịch chuyển tử vị trí c do người dùng nhập vào lên 1.

/ 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];

Sau đó mới chèn giá trị đó vào vị trí mà người dùng chọn.

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

Bước cuối cùng sẽ in mảng sau khi chèn ra màn hình.

printf("Mảng sau khi chèn: ");
   for (c = 0; c <= n; c++)
      printf("%d ", array[c]);

Hãy xem hai chương trình mình đã viết sẵn dưới đây nhé.

Chương trình C:

#include <stdio.h>
 
int main()
{
   int array[100], position, c, n, value;
   printf("Nhập vào số lượng phần tử: ");
   scanf("%d", &n);
 
   printf("Nhập giá trị cho các phần tử:\n");
   for (c = 0; c < n; c++)
      scanf("%d", &array[c]);
   
   printf("Mảng trước khi chèn: ");
   for (c = 0; c < n; c++)
      printf("%d ", array[c]);

   printf("\nNhập vị trí chèn phần tử: ");
   scanf("%d", &position);
 
   printf("Nhập giá trị cần chè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("Mảng sau khi chèn: ");
   for (c = 0; c <= n; c++)
      printf("%d ", array[c]);
  
    printf("\n-----------------------------------\n");
    printf("Chương trình này được đăng tại codehow.net");
   return 0;
}

Kết quả:

bai28 03 PNG

Chương trình C++:

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
   int array[100], position, c, n, value;
   cout<<"Nhập vào số lượng phần tử: ";
   cin>>n;
 
   cout<<"Nhập giá trị cho các phần tử:\n";
   for (c = 0; c < n; c++)
      cin>>array[c];
   
   cout<<"Mảng trước khi chèn: ";
   for (c = 0; c < n; c++)
      cout<<array[c]<<" ";

   cout<<"\nNhập vị trí chèn phần tử: ";
   cin>>position;
 
   cout<<"Nhập giá trị cần chèn: ";
   cin>>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;
 
   cout<<"Mảng sau khi chèn: ";
   for (c = 0; c <= n; c++)
      cout<<array[c]<<" ";
  
    cout<<"\n-----------------------------------\n";
    cout<<"Chương trình này được đăng tại codehow.net";
   return 0;
}

Kết quả:

bai28 04 PNG

Như vậy là chúng ta đã cùng nhau tìm hiểu về cách thêm và chèn phần tử vào mảng. Các bạn có thể luyện tập nhiều dạng bài tập hơn tại serries bài tập C / C++ của codehow nhé. Cảm ơn các bạn rất nhiều.

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top