Rumah > pembangunan bahagian belakang > C++ > Alih keluar sifar utama daripada tatasusunan menggunakan C++

Alih keluar sifar utama daripada tatasusunan menggunakan C++

PHPz
Lepaskan: 2023-09-05 11:13:11
ke hadapan
937 orang telah melayarinya

Alih keluar sifar utama daripada tatasusunan menggunakan C++

Kami disediakan tatasusunan dan tugas kami ialah mengalih keluar sifar pendahuluan daripada tatasusunan yang diberikan dan kemudian mencetak tatasusunan.

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
Salin selepas log masuk

Kita boleh mencipta tatasusunan baharu yang tidak mengandungi sifar pendahuluan tatasusunan sebelumnya dalam masalah yang diberikan.

Kaedah untuk mencari penyelesaian

Dalam kaedah ini kita akan melelar melalui tatasusunan dan memasukkan semua nombor kecuali sifar pendahuluan.

Contoh

#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] << " ";
   }
}
Salin selepas log masuk

Output

1 2 0 4
Salin selepas log masuk

Penjelasan kod di atas

Dalam atur cara yang diberikan, kita mula-mula melelang melalui arr tatasusunan dan mencari indeks unsur bukan sifar pertama, menyimpannya dalam pembolehubah dipanggil terakhir. Jika yang terakhir ialah -1 selepas merentasi, ini bermakna keseluruhan tatasusunan terdiri daripada sifar, jadi kami mencetak "Kosong".

Sekarang kita mempunyai indeks unsur bukan sifar pertama, kita boleh menentukan saiz tatasusunan baharu, iaitu (n - terakhir), dan kemudian kita menjalankan gelung for bermula dari terakhir hingga n-1. Kami memasukkan elemen ini ke dalam tatasusunan baharu dan mencetak tatasusunan baharu.

Kesimpulan

Dalam artikel ini, kami menyelesaikan masalah mengalih keluar sifar pendahuluan daripada tatasusunan. Kami juga mempelajari program C++ untuk menyelesaikan masalah ini dan penyelesaian lengkap. Kita boleh menulis program yang sama dalam bahasa lain seperti C, Java, Python dan lain-lain. Semoga artikel ini membantu anda.

Atas ialah kandungan terperinci Alih keluar sifar utama daripada tatasusunan menggunakan C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan