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

Alih keluar sifar utama daripada tatasusunan menggunakan C++

PHPz
PHPzke hadapan
2023-09-05 11:13:11828semak imbas

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

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] << " ";
   }
}

Output

1 2 0 4

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam