Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Loại bỏ số 0 dẫn đầu khỏi mảng bằng C++


Ta được cung cấp một mảng, và ta được giao nhiệm vụ loại bỏ các số 0 dẫn đầu khỏi mảng cho trước 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

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

Phương pháp tìm giải pháp

Trong phương pháp này, ta sẽ đi qua mảng và chèn tất cả các số nhưng không có số 0 dẫn đầ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); // kích thước mảng cho trước.    int last = -1;    for(int i = 0; i < n; i++) { // tìm phần tử khác 0 đầu tiên       if(arr[i] != 0) {       last = i;       break;       }    }    if(last == -1)       cout << "Empty\n";    else {       int b[n - last]; // mảng mới.       for(int i = last; i < n; i++) // chèn phần tử vào mảng mới          b[i-last] = arr[i];       for(int i = 0; i < n-last; i++) // in mảng    cout << b[i] << " ";    } }

Kết quả

1 2 0 4

Giải thích mã trên

Trong chương trình cho trước, ta trước tiên duyệt qua mảng arr và tìm chỉ số của phần tử khác 0 đầu tiên, lưu vào biến last. Bây giờ nếu last là -1 sau duyệt, nghĩa là toàn mảng toàn số 0, in "Empty".

Bây giờ, khi đã có chỉ số phần tử khác 0 đầu tiên, ta xác định kích thước mảng mới, tức là (n - last), và chạy vòng lặp từ last đến nhỏ hơn n. Ta 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, ta giải quyết bài toán Loại bỏ số 0 dẫn đầu khỏi mảng. Ta cũng học chương trình C++ cho bài toán này và phương pháp hoàn chỉnh ta đã giải quyết. Ta có thể viết cùng chương trình bằng ngôn ngữ khác như C, Java, Python và các ngôn ngữ khác. Hy vọng bạn thấy bài viết hữu ích.