w3resource

C Exercises: Create a new array from a given array of integers shifting all zeros to left direction

C-programming basic algorithm: Exercise-71 with Solution

Write a C program to create a new array from a given array of integers shifting all zeros to left direction.

C Code:

#include <stdio.h>
#include <stdlib.h>

// Function prototype for 'print_array'
void print_array(int parray[], int size);

int main(void){ 
    int arr_size;

    // Declaration and initialization of an integer array 'a1'
    int a1[] = {1, 2, 0, 3, 5, 7, 0, 9, 11};
    arr_size = sizeof(a1)/sizeof(a1[0]);

    // Printing the elements of the original array 'a1'
    printf("Elements in original array are: ");  
    print_array(a1, arr_size);

    // Declaration of 'pos' variable to keep track of position of 0 in 'a1'
    int pos = 0;

    // Loop to iterate through the elements of 'a1'
    for (int i = 0; i < arr_size; i++)
    {
        // If the current element is 0, swap it with the element at 'pos' and increment 'pos'
        if (a1[i] == 0)
        {
            a1[i] = a1[pos];
            a1[pos++] = 0;
        }
    }

    // Update 'arr_size' to reflect the size of the modified 'a1' array
    arr_size = sizeof(a1)/sizeof(a1[0]);                

    // Printing the elements of the modified array 'a1'
    printf("\nElements in new array are: ");  
    print_array(a1, arr_size);
}      

// Definition of the 'print_array' function
void print_array(int parray[], int size)
{
    int i;      
    // Loop to print the elements of the array
    for( i = 0; i < size - 1; i++)  
    {  
        printf("%d, ", parray[i]);  
    } 
    // Printing the last element
    printf("%d ", parray[i]);  
    printf("\n");   
}

Sample Output:

Elements in original array are: 1, 2, 0, 3, 5, 7, 0, 9, 11 

Elements in new array are: 0, 0, 1, 3, 5, 7, 2, 9, 11

Pictorial Presentation:

C Programming Algorithm: Create a new array from a given array of integers shifting all zeros to left direction

Flowchart:

C Programming Algorithm Flowchart: Create a new array from a given array of integers shifting all zeros to left direction

C Programming Code Editor:

Previous: Write a C program to create a new array taking the elements after the element value 5 from a given array of integers.
Next: Write a C program to create a new array after replacing  all the values 5 with 0 shifting all zeros to right direction.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/c-programming-exercises/basic-algo/c-programming-basic-algorithm-exercises-71.php