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

Xóa Zeros hàng đầu khỏi một mảng bằng C ++

Chúng tôi được cung cấp một mảng và chúng tôi có nhiệm vụ xóa các số 0 ở đầu mảng đã cho và sau đó in mảng.

Input : arr[] = {0, 0, 0, 1, 2, 3}
Output : 1 2 3

Input : arr[] = {0, 0, 0, 1, 0, 2, 3}
Output : 1 0 2 3

Chúng ta có thể tạo một mảng mới không chứa các số 0 đứng đầu của mảng trước đó trong bài toán đã cho.

Phương pháp tiếp cận để tìm ra giải pháp

Trong cách tiếp cận này, chúng ta sẽ đi qua mảng và chèn tất cả các số nhưng không có số 0 ở đầu.

Ví dụ

#include <iostream>

using namespace std;

int main() {
   int arr[] = {0, 0, 0, 1, 2, 0, 4};
   int n = sizeof(arr) / sizeof(int); // size of given array.
   int last = -1;
   for(int i = 0; i < n; i++) { // finding the first non zero element
      if(arr[i] != 0) {
      last = i;
      break;
      }
   }
   if(last == -1)
      cout << "Empty\n";
   else {
      int b[n - last]; // the new array.
      for(int i = last; i < n; i++) // inserting the elements in the new array
         b[i-last] = arr[i];

      for(int i = 0; i < n-last; i++) // printing the array
   cout << b[i] << " ";
   }
}

Đầu ra

1 2 0 4

Giải thích về đoạn mã trên

Trong chương trình đã cho, trước tiên chúng ta đang duyệt qua mảng arr và tìm chỉ mục của phần tử khác 0 đầu tiên, mà chúng ta lưu trữ trong biến được gọi là cuối cùng bây giờ nếu cuối cùng là -1 sau khi duyệt, điều đó có nghĩa là toàn bộ mảng của chúng ta được tạo thành từ các số 0, vì vậy chúng tôi in "Trống".

Bây giờ, khi chúng ta có chỉ mục của các phần tử khác 0 đầu tiên, chúng ta có thể xác định kích thước mảng mới của chúng ta, tức là (n - cuối cùng), và bây giờ chúng ta chạy một vòng lặp for từ cuối cùng đến nhỏ hơn n. Chúng tôi chèn các phần tử này vào mảng mới và in mảng mới.

Kết luận

Trong bài viết này, chúng tôi giải quyết vấn đề Xóa các số không ở đầu một mảng. Chúng tôi cũng đã học chương trình C ++ cho vấn đề này và cách tiếp cận hoàn chỉnh mà chúng tôi đã giải quyết. Chúng ta có thể viết cùng một chương trình bằng các ngôn ngữ khác như C, java, python và các ngôn ngữ khác. Chúng tôi hy vọng bạn thấy bài viết này hữu ích.