How to move all zeros in int array to the end with C++

1 Answer

0 votes
#include <iostream>
 
using namespace std;
 
void move_zeros_to_end(int arr[], int len) {
    int j = 0;
  
    for (int i = 0; i < len; i++) {
        if (arr[i] != 0)
            arr[j++] = arr[i];
    }
  
    while (j < len)
        arr[j++] = 0;
}
     
int main(int argc, char **argv) 
{
    int arr[] = { 0, 3, 4, 0, 6, 0, 0, 8, 9, 0 };
    int len = sizeof(arr) / sizeof(arr[0]);
  
    move_zeros_to_end(arr, len);
  
    for (int i = 0; i < len; i++)
        cout << arr[i] << " ";
  
    return 0; 
}
      
        
/*
run:
      
3 4 6 8 9 0 0 0 0 0
   
*/

 



answered Feb 25, 2019 by avibootz
edited Feb 25, 2019 by avibootz

Related questions

2 answers 221 views
1 answer 166 views
1 answer 160 views
1 answer 207 views
1 answer 162 views
1 answer 128 views
1 answer 150 views
...