How to move all negative elements to the beginning of array in C

1 Answer

0 votes
#include <stdio.h>

void swap(int* a, int* b) {
    int tmp;

    tmp = *a;
    *a = *b;
    *b = tmp;
}
void move_negative_to_beginning(int arr[], int size) {
    int beginning_index = 0;

    for (int i = 0; i < size; i++) {
        if (arr[i] < 0) {
            swap(&arr[i], &arr[beginning_index]);
            beginning_index++;
        }
    }
}

int main()
{
    int arr[] = { -1, 8, -6, 21, -3, 4, -2, 7, 15, -30, -40, 9 };
    int size = sizeof(arr) / sizeof(arr[0]);

    move_negative_to_beginning(arr, size);

    for (int i = 0; i < size; i++)
        printf("%d ", arr[i]);

    return 0;
}





/*
run:

-1 -6 -3 -2 -30 -40 21 7 15 8 4 9

*/

 



answered Aug 22, 2022 by avibootz

Related questions

...