#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void move_negative_to_end(int arr[], int size) {
int *temp = malloc(sizeof(int) * size);
int j = 0;
for (int i = 0; i < size ; i++)
if (arr[i] >= 0 )
temp[j++] = arr[i];
if (j == size || j == 0)
return;
for (int i = 0 ; i < size ; i++)
if (arr[i] < 0)
temp[j++] = arr[i];
for (int i = 0; i < size; i++)
arr[i] = temp[i];
free(temp);
}
int main()
{
int arr[] = { -1, 8, -21, -3, -2, 7, 15, -30, -40, 4, 6, 9 };
int size = sizeof(arr)/sizeof(arr[0]);
move_negative_to_end(arr, size);
for (int i = 0; i < size; i++)
printf("%d ", arr[i]);
return 0;
}
/*
run:
8 7 15 4 6 9 -1 -21 -3 -2 -30 -40
*/