#include <stdio.h>
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];
// simulation - see how it works
for (int i = 0; i < len; i++)
printf("%d ", arr[i]);
printf("\n");
// simulation - see how it works
}
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++)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
/*
run:
0 3 4 0 6 0 0 8 9 0
3 3 4 0 6 0 0 8 9 0
3 4 4 0 6 0 0 8 9 0
3 4 4 0 6 0 0 8 9 0
3 4 6 0 6 0 0 8 9 0
3 4 6 0 6 0 0 8 9 0
3 4 6 0 6 0 0 8 9 0
3 4 6 8 6 0 0 8 9 0
3 4 6 8 9 0 0 8 9 0
3 4 6 8 9 0 0 8 9 0
3 4 6 8 9 0 0 0 0 0
*/