Computer >> Máy Tính >  >> Lập trình >> C ++

Xóa phần tử mảng trong phạm vi chỉ số đã cho [L - R] trong C ++?

Trước tiên, chúng ta hãy xác định mảng ban đầu và phạm vi dành riêng cho việc xóa các phần tử của mảng và cũng tìm độ dài mảng ban đầu -

int arr[] = { 2,4,6,8,10,12,14,16,18,20};
int L = 2, R = 6;
int length = sizeof(arr) / sizeof(arr[0]);

Bây giờ chúng ta lặp lại trong mảng và nếu vị trí chỉ mục (i) lớn hơn L hoặc R, chúng ta tăng biến k sẽ được sử dụng để thay đổi vị trí (xóa) của phần tử mảng khi giá trị chỉ số (i) nằm giữa phạm vi L và R. Ngoài ra, độ dài mới của mảng đã cho sẽ là k.

int k = 0;
for (int i = 0; i < length; i++) {
   if (i <= L || i >= R) {
      arr[k] = arr[i];
      k++;
   }
}

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn về việc xóa các phần tử mảng trong chỉ mục đã cho

#include <iostream>
using namespace std;
int main() {
   int arr[] = { 2,4,6,8,10,12,14,16,18,20};
   int L = 2, R = 6;
   int length = sizeof(arr) / sizeof(arr[0]);
   int k = 0;
   for (int i = 0; i < length; i++) {
      if (i <= L || i >= R) {
         arr[k] = arr[i];
         k++;
      }
   }
   length=k;
   for (int i = 0; i < length; i++)
      cout << arr[i] << " ";
   return 0;
}

Đầu ra

Đoạn mã trên sẽ tạo ra kết quả sau -

2 4 6 14 16 18 20