Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ลบเลขศูนย์นำหน้าออกจากอาร์เรย์โดยใช้ C++


เราได้รับอาร์เรย์ และเราได้รับมอบหมายให้ลบเลขศูนย์นำหน้าออกจากอาร์เรย์ที่กำหนด จากนั้นพิมพ์อาร์เรย์

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

เราสามารถสร้างอาร์เรย์ใหม่ที่ไม่มีศูนย์นำหน้าของอาร์เรย์ก่อนหน้าในปัญหาที่กำหนดได้

แนวทางในการหาทางออก

ในแนวทางนี้ เราจะผ่านอาร์เรย์และแทรกตัวเลขทั้งหมดแต่ไม่มีศูนย์นำหน้า

ตัวอย่าง

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

ผลลัพธ์

1 2 0 4

คำอธิบายของโค้ดด้านบน

ในโปรแกรมที่กำหนด ขั้นแรกเราจะสำรวจผ่านอาร์เรย์ arr และค้นหาดัชนีขององค์ประกอบที่ไม่เป็นศูนย์แรก ซึ่งเราเก็บไว้ในตัวแปรที่เรียกว่า last now ถ้าสุดท้ายเป็น -1 หลังการข้ามผ่าน นั่นหมายความว่าอาร์เรย์ทั้งหมดของเราประกอบด้วย ศูนย์ ดังนั้นเราจึงพิมพ์ "ว่างเปล่า" ของเรา

ตอนนี้ เมื่อเราได้ดัชนีขององค์ประกอบที่ไม่ใช่ศูนย์แรกแล้ว เราก็สามารถกำหนดขนาดของอาร์เรย์ใหม่ได้ นั่นคือ (n - สุดท้าย) และตอนนี้เราเรียกใช้ a for ลูปจากอันสุดท้ายจนถึงน้อยกว่า n เราแทรกองค์ประกอบเหล่านี้ในอาร์เรย์ใหม่และพิมพ์อาร์เรย์ใหม่

บทสรุป

ในบทความนี้ เราจะแก้ปัญหาในการลบเลขศูนย์นำหน้าออกจากอาร์เรย์ นอกจากนี้เรายังได้เรียนรู้โปรแกรม C++ สำหรับปัญหานี้และแนวทางทั้งหมดที่เราแก้ไข เราสามารถเขียนโปรแกรมเดียวกันในภาษาอื่นๆ เช่น C, java, python และภาษาอื่นๆ เราหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์