Q:

Write a C++ program to move all negative elements of an array of integers to the end of the array without changing the order of positive element and negative element

0

Write a C++ program to move all negative elements of an array of integers to the end of the array without changing the order of positive element and negative element

Sample Output:

Original array: 0 9 -7 2 -12 11 -20 
Array elements after rearrange: 0 9 2 11 -7 -12 -20

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

#include <iostream>
using namespace std;

void segregateElements(int nums[], int n)
{
    // Array to store result
    int result[n];

    int j = 0; // index of result
    for (int i = 0; i < n ; i++)
        if (nums[i] >= 0 )
            result[j++] = nums[i];
    if (j == n || j == 0)
        return;
 
    for (int i = 0 ; i < n ; i++)
        if (nums[i] < 0)
            result[j++] = nums[i];
 
    // Copy contents to nums[]
    memcpy(nums, result, sizeof(result));
} 
 
int main()
{
    int nums[] = {0, 9, -7, 2, -12, 11, -20}; 
    int n = sizeof(nums)/sizeof(nums[0]);
    cout << "Original array: ";
    for (int i=0; i < n; i++) 
    cout << nums[i] <<" ";
     segregateElements(nums, n);
 
    printf("\nArray elements after rearrange: ");
      for (int i=0; i < n; i++) 
      cout << nums[i] <<" ";
        return 0;
      
}

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Similar questions


need a help?


find thousands of online teachers now