Skip to main content

Featured

C Program to Solve Two Sum Using Brute Force (With Algorithm & Output)

 Introduction The Two Sum problem is a popular coding interview question where we must find two indices of an array whose values add up to a given target. This program demonstrates a simple brute-force solution in C using nested loops and dynamic memory allocation. Problem Statement Given an integer array and a target value, return the indices of the two numbers such that they add up to the target. Each input has exactly one solution, and the same element cannot be used twice. The result should return the indices, not the values. If no solution exists, return NULL.  Algorithm / Logic Explanation Start the program. Traverse the array using a loop from index 0 to numsSize - 1 . Inside this loop, use another loop starting from i + 1 to numsSize - 1 . For every pair (i, j) , check if nums[i] + nums[j] == target . If condition becomes true: Allocate memory for 2 integers using malloc() . Store indices i and j . Set returnSize = 2 . Return the result poi...

C Program to Move All Zeros to the End of the Array

C Program to Move Zeros to End and Sort Non-Zero Elements

✅ C Program to Move Zeros to End and Sort Non-Zero Elements

  
  /*
 *  A chocolate factory is packing chocolates into the packets. The chocolate packets here 
 * represent an array of N number of integer values. The task is to find the empty packets(0) of 
 * chocolate and push it to the end of the conveyor belt(array). Click here to see solution
Example 1 : N=8 and arr = [4,5,0,1,9,0,5,0].

There are 3 empty packets in the given set. These 3 empty packets represented as O should be pushed towards the end of the array
 */
#include <stdio.h>

int main() {
    int num;
    printf("Enter the size of the array:\n");
    scanf("%d",&num);

    if(num <=0) {
        printf("!Invalid array size\n");
        return 0;
    }

    int a[num];
    printf("Enter %d elements in array:\n", num);
    for(int i=0; i<num; i++) {
        scanf("%d", &a[i]);
    }

    // Step 1: Move all zeros to the end
    int j = 0;
    for(int i=0; i<num; i++) {
        if(a[i] != 0) {
            a[j] = a[i];
            j++;
        }
    }
    for(int i=j; i<num; i++) {
        a[i] = 0;
    }

    // Step 2: Sort only non-zero elements
    for(int i=0; i<j-1; i++) {
        for(int k=0; k<j-i-1; k++) {
            if(a[k] > a[k+1]) {
                int temp = a[k];
                a[k] = a[k+1];
                a[k+1] = temp;
            }
        }
    }

    printf("After moving zeros to the end and sorting:\n");
    for(int i=0; i<num; i++) {
        printf("%d ", a[i]);
    }

    return 0;
}
  

๐Ÿ“˜ Explanation:

This program first moves all zeros in the array to the end and then sorts only the non-zero elements.

Steps:

  • Take input for array size and elements.
  • Move non-zero elements to the front using index j.
  • Fill the remaining positions with zeros.
  • Sort only the first j non-zero elements using bubble sort.

๐Ÿงพ Sample Output:

Enter the size of the array:
6
Enter 6 elements in array:
4 0 2 0 5 1
After moving zeros to the end and sorting:
1 2 4 5 0 0
  

๐Ÿ”‘ Keywords:

C program move zeros, sort non-zero elements, array manipulation, beginner C programs, bubble sort logic

๐Ÿ“Œ Hashtags:

#CProgramming #ArrayLogic #MoveZeros #Sorting #InterviewPrep

๐Ÿ” Search Description:

Learn how to move all zeros to the end of an array and sort non-zero elements in C. Includes clear explanation and sample output for beginners and interview preparation.

Comments

Popular Posts

๐ŸŒ™