Work in Progress 🚧
Arrays in C
🚀

🎉 60 questions live – more coming soon! Stay tuned for updates. Last updated on March 16, 2025

Question 1: C Program to Read and Print Elements of an Array

easy
#include <stdio.h>

void main()
{
    int n, i, arr[50];
    printf("Enter number of elements: ");
    scanf("%d", &n);

    printf("Enter array elements -\n");
    for (i = 0; i < n; i++)
        scanf("%d", &arr[i]);

    printf("\nArray elements are -\n");
    for (i = 0; i < n; i++)
        printf("%d\n", arr[i]);
}
Output:
Array elements are -
1
2
3
4
5

Question 2: C Program to Count the Total Number of Duplicate Elements in an Array

medium
#include <stdio.h>
int main()
{
    int arr[100]; 
    int size, count = 0;  
    int i, j;
    printf("Input the number of elements to be stored in the array :");
    scanf("%d", &size);
    printf("Input %d elements in the array :\n", size);
    for (i = 0; i < size; i++)
    {
        printf("element - %d : ", i);
        scanf("%d", &arr[i]); 
    }
    for (i = 0; i < size; i++)
    {
        for (j = i + 1; j < size; j++)
        {
            if (arr[i] == arr[j])
            {
                count++;  
                break; 
            }
        }
    }
    printf("Total number of duplicate elements found in the array: %d\n", count);
    return 0; 
}
Output:
Total number of duplicate elements found in the array: 2

Question 3.1: C Program to Print All Unique Elements in an Array

medium
#include <stdio.h>
int main()
{
    int arr[100], size, count = 0;
    int i, j, k; 
    printf("Input the number of elements to be stored in the array: ");
    scanf("%d", &size);
    printf("Input %d elements in the array :\n", size);
    for (i = 0; i < size; i++)
    {
        printf("element - %d : ", i);
        scanf("%d", &arr[i]); 
    }
    printf("\nThe unique elements found in the array are: \n");
    for (i = 0; i < size; i++)
    {
        count = 0;
        for (j = 0, k = size; j < k + 1; j++)
        {
            if (i != j)
            {
                if (arr[i] == arr[j])
                {
                    count++;
                }
            }
        }
        if (count == 0)
        {
            printf("%d ", arr[i]); 
        }
    }
    printf("\n\n");
    return 0; 
}
Output:
The unique elements found in the array are: 3 4

Question 3.2: C Program to Print All Unique Elements in an Array (Method 2)

medium
#include <stdio.h>

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

    int arr[size];
    printf("Enter %d elements -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    printf("Unique elements in the array are: ");
    for (int i = 0; i < size; i++) {
        int isUnique = 1;
        for (int j = 0; j < size; j++) {
            if (i != j && arr[i] == arr[j]) {
                isUnique = 0;
                break;
            }
        }
        if (isUnique) {
            printf("%d ", arr[i]);
        }
    }

    return 0;
}
Output:
Unique elements in the array are: 3 4

Question 3.3: C Program to Print All Unique Elements in an Array (Method 3)

easy
#include <stdio.h>

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

    int arr[size];
    printf("Enter %d elements -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    int freq[100] = {0}; // Assuming the maximum possible value in the array is 99

    for (int i = 0; i < size; i++) {
        freq[arr[i]]++;
    }

    printf("Unique elements in the array are: ");
    for (int i = 0; i < size; i++) {
        if (freq[arr[i]] == 1) {
            printf("%d ", arr[i]);
        }
    }

    return 0;
}
Output:
Unique elements in the array are: 3 4

Question 4: C Program to Print the Sum of Array Elements

easy
#include <stdio.h>

void main()
{
    int size, i, arr[50], sum = 0;
    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements -\n");
    for (i = 0; i < size; i++)
        scanf("%d", &arr[i]);

    for (i = 0; i < size; i++)
        sum = sum + arr[i];

    printf("Sum of array elements: %d", sum);
}
Output:
Sum of array elements: 15

Question 5: C Program to Print Maximum and Minimum Elements in the Array

easy
#include <stdio.h>

void main()
{
    int arr[50], size, i, min, max;

    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for(i = 0; i < size; i++)
        scanf("%d", &arr[i]);

    // Assuming the first element as minimum and maximum
    min = arr[0];
    max = arr[0];

    for (i = 1; i < size; i++)
    {
        // Checking for minimum number
        if (arr[i] < min)
            min = arr[i];

        // Checking for maximum number
        if (arr[i] > max)
            max = arr[i];
    }

    printf("\nMinimum number in the array is: %d\n", min);
    printf("Maximum number in the array is: %d", max);
}
Output:
Minimum number in the array is: 1
Maximum number in the array is: 7

Question 6: C Program to Print the Second Largest Element in the Array

medium
#include <stdio.h>
#include <limits.h>

void main()
{
    int arr[50], size, i, max1, max2;

    printf("Enter number of array elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for (i = 0; i < size; i++)
        scanf("%d", &arr[i]);

    max1 = max2 = INT_MIN;

    for (i = 0; i < size; i++)
    {
        if (arr[i] > max1)
        {
            max2 = max1;
            max1 = arr[i];
        }
        else if (arr[i] < max1 && arr[i] > max2)
        {
            max2 = arr[i];
        }
    }

    if (max2 == INT_MIN)
        printf("\nNo second largest element found.");
    else
        printf("\nSecond largest number in array is: %d", max2);
}
Output:
Second largest number in array is: 7

Question 7: C Program to Print the Count of Even and Odd Numbers in the Array

easy
#include <stdio.h>

void main()
{
    int arr[50], size, i, even = 0, odd = 0;

    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for (i = 0; i < size; i++)
        scanf("%d", &arr[i]);

    for (i = 0; i < size; i++)
    {
        if (arr[i] % 2 == 0)
            even++;
        else
            odd++;
    }

    printf("\nCount of even numbers: %d\n", even);
    printf("Count of odd numbers: %d", odd);
}
Output:
Count of even numbers: 3
Count of odd numbers: 3

Question 8: C Program to Count Positive, Negative, and Zero Numbers in the Array

easy
#include <stdio.h>

void main()
{
    int arr[50], size, i, positive = 0, negative = 0, zero = 0;

    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for (i = 0; i < size; i++)
        scanf("%d", &arr[i]);

    for (i = 0; i < size; i++)
    {
        if (arr[i] > 0)
            positive++;
        else if (arr[i] < 0)
            negative++;
        else
            zero++;
    }

    printf("\nNumber of positive elements: %d\n", positive);
    printf("Number of negative elements: %d\n", negative);
    printf("Number of zeros: %d", zero);
}
Output:
Number of positive elements: 3
Number of negative elements: 2
Number of zeros: 2

Question 9: C Program to Copy All Array Elements from One Array to Another

easy
#include <stdio.h>

void main()
{
    int oldArray[50], newArray[50], size, i;

    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for (i = 0; i < size; i++)
        scanf("%d", &oldArray[i]);

    // Copying elements from old array to new array
    for (i = 0; i < size; i++)
        newArray[i] = oldArray[i];

    printf("\nElements of old array-\n");
    for (i = 0; i < size; i++)
        printf("%d ", oldArray[i]);

    printf("\nElements of new array-\n");
    for (i = 0; i < size; i++)
        printf("%d ", newArray[i]);
}
Output:
Elements of old array-
1 2 3 4 5 
Elements of new array-
1 2 3 4 5

Question 10: C Program to Insert an Element in the Array

medium
#include <stdio.h>

void main()
{
    int arr[50], size, pos, i, num;

    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for (i = 0; i < size; i++)
        scanf("%d", &arr[i]);

    printf("\nEnter number to insert: ");
    scanf("%d", &num);
    printf("Enter position to insert element: ");
    scanf("%d", &pos);

    // Check for invalid position
    if (pos < 0 || pos > size)
        printf("Invalid position");
    else
    {
        // Shifting elements to make space for the new element
        for (i = size - 1; i >= pos - 1; i--)
            arr[i + 1] = arr[i];

        arr[pos - 1] = num;
        size++;

        printf("Array after insertion-\n");
        for (i = 0; i < size; i++)
            printf("%d ", arr[i]);
    }
}
Output:
Array after insertion-
1 2 10 3 4 5

Question 11: C Program to Delete an Element from the Array at a Given Position

medium
#include <stdio.h>

void main()
{
    int arr[50], size, pos, i;

    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for (i = 0; i < size; i++)
        scanf("%d", &arr[i]);

    printf("\nEnter position to delete: ");
    scanf("%d", &pos);

    // Check for invalid position
    if (pos < 1 || pos > size)
        printf("Invalid position");
    else
    {
        // Shifting elements to remove the element at given position
        for(i = pos - 1; i < size - 1; i++)
            arr[i] = arr[i + 1];
        size--;

        printf("Array after deletion-\n");
        for (i = 0; i < size; i++)
            printf("%d ", arr[i]);
    }
}
Output:
Array after deletion-
1 2 4 5

Question 12: C Program to Delete an Element from the Array by a Given Value

medium
#include <stdio.h>

int main() {
    int arr[50], size, num, i, pos = -1;

    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    printf("\nEnter element to delete: ");
    scanf("%d", &num);

    // Find position of the element to be deleted
    for (i = 0; i < size; i++) {
        if (arr[i] == num) {
            pos = i;
            break;
        }
    }

    // If element is not found
    if (pos == -1) {
        printf("Element %d not found in the array.\n", num);
    } else {
        // Shift elements to remove the found element
        for (i = pos; i < size - 1; i++) {
            arr[i] = arr[i + 1];
        }
        size--; 

        printf("Array after deletion:\n");
        for (i = 0; i < size; i++) {
            printf("%d ", arr[i]);
        }
        printf("\n");
    }

    return 0;
}
Output:
Array after deletion:
1 2 3 5 6

Question 13.1: C Program to Print the Frequency of Each Element in the Array (Method 1)

medium
#include <stdio.h>

void main()
{
    int arr[50], size, i, j, k, isCounted, count;

    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for (i = 0; i < size; i++)
        scanf("%d", &arr[i]);

    printf("\nFrequency of elements-\n");
    for (i = 0; i < size; i++)
    {
        isCounted = 0;
        for (j = 0; j < i; j++)
        {
            if (arr[i] == arr[j])
                isCounted = 1;
        }
        if (!isCounted)
        {
            count = 0;
            for (k = i; k < size; k++)
            {
                if (arr[i] == arr[k])
                    count++;
            }
            printf("%d occurs %d times\n", arr[i], count);
        }
    }
}
Output:
Frequency of elements:
1 occurs 2 times
2 occurs 2 times
3 occurs 1 time
4 occurs 1 time

Question 13.2: C Program to Print the Frequency of Each Element in the Array (Method 2 - Optimized)

easy
#include <stdio.h>

void main()
{
    int arr[50], size, i;

    printf("Enter number of elements: ");
    scanf("%d", &size);

    printf("Enter array elements-\n");
    for (i = 0; i < size; i++)
        scanf("%d", &arr[i]);

    printf("\nFrequency of elements-\n");
    int freq[100] = {0}; // Assuming max element value is <100
    
    for (i = 0; i < size; i++) {
        freq[arr[i]]++;
    }
    
    for (i = 0; i < size; i++) {
        if (freq[arr[i]] > 0) {
            printf("%d occurs %d times\n", arr[i], freq[arr[i]]);
            freq[arr[i]] = 0; // Reset to avoid duplicate printing
        }
    }
}
Output:
Frequency of elements:
1 occurs 2 times
2 occurs 2 times
3 occurs 1 time
4 occurs 1 time

Question 14.1: C Program to Delete All Duplicate Elements from an Array (Method 1)

medium
#include <stdio.h>

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

    int arr[size];
    printf("Enter %d elements -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    // Process to remove duplicates
    for (int i = 0; i < size; i++) {
        for (int j = i + 1; j < size; ) {
            if (arr[i] == arr[j]) {
                // Shift elements to the left
                for (int k = j; k < size - 1; k++) {
                    arr[k] = arr[k + 1];
                }
                size--; // Reduce the size of the array
            } else {
                j++;
            }
        }
    }

    // Printing the array after removing duplicates
    printf("Array after removing duplicates: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}
Output:
Array after removing duplicates: 1 2 3 4

Question 14.2: C Program to Delete All Duplicate Elements from an Array (Method 2 - Optimized)

easy
#include <stdio.h>

#define MAX 100

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

    int arr[size];
    printf("Enter %d elements -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    int freq[MAX] = {0}; // Frequency array, assuming elements range from 0 to MAX-1
    int uniqueArr[size]; // Array to store unique elements
    int uniqueSize = 0;  // Size of the unique array

    // Populate frequency array and create array with unique elements
    for (int i = 0; i < size; i++) {
        if (freq[arr[i]] == 0) {
            uniqueArr[uniqueSize++] = arr[i];
        }
        freq[arr[i]]++;
    }

    // Copy unique elements back to original array
    for (int i = 0; i < uniqueSize; i++) {
        arr[i] = uniqueArr[i];
    }
    size = uniqueSize; // Update the size to the number of unique elements

    // Printing the array after removing duplicates
    printf("Array after removing duplicates: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}
Output:
Array after removing duplicates: 1 2 3 4

Question 15: C Program to Merge Two Arrays into a Third Array

easy
#include <stdio.h>

int main() {
    int size1, size2;

    // Input size and elements of the first array
    printf("Enter the size of the first array: ");
    scanf("%d", &size1);
    int arr1[size1];
    printf("Enter %d elements for the first array -\n", size1);
    for (int i = 0; i < size1; i++) {
        scanf("%d", &arr1[i]);
    }

    // Input size and elements of the second array
    printf("Enter the size of the second array: ");
    scanf("%d", &size2);
    int arr2[size2];
    printf("Enter %d elements for the second array -\n", size2);
    for (int i = 0; i < size2; i++) {
        scanf("%d", &arr2[i]);
    }

    // Declare the third array with size equal to the sum of the first and second arrays
    int size3 = size1 + size2;
    int arr3[size3];

    // Copy elements of the first array to the third array
    for (int i = 0; i < size1; i++) {
        arr3[i] = arr1[i];
    }

    // Copy elements of the second array to the third array
    for (int i = 0; i < size2; i++) {
        arr3[size1 + i] = arr2[i];
    }

    // Print the merged array
    printf("Merged array: ");
    for (int i = 0; i < size3; i++) {
        printf("%d ", arr3[i]);
    }

    return 0;
}
Output:
Merged array: 1 2 3 4 5 6

Question 16: C Program to Find the Reverse of an Array

easy
#include <stdio.h>

int main() {
    int size;

    // Input size and elements of the array
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    int arr[size];
    printf("Enter %d elements  -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    // Reverse the array
    for (int i = 0; i < size / 2; i++) {
        int temp = arr[i];
        arr[i] = arr[size - 1 - i];
        arr[size - 1 - i] = temp;
    }

    // Print the reversed array
    printf("Reversed array: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}
Output:
Reversed array: 5 4 3 2 1

Question 17: C Program to Search an Element in an Array

easy
#include <stdio.h>

int main() {
    int size, element, found = 0;

    // Input size and elements of the array
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    int arr[size];

    printf("Enter %d elements -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    // Input the element to search
    printf("\nEnter the element to search: ");
    scanf("%d", &element);

    // Search the array
    for (int i = 0; i < size; i++) {
        if (arr[i] == element) {
            found = 1;
            printf("Element %d found at position %d", element, i + 1);
            break;
        }
    }

    if (!found) {
        printf("Element %d not found in the array", element);
    }

    return 0;
}
Output:
Element 30 found at position 3

Question 18: C Program for Sorting an Array in Ascending Order

easy
#include <stdio.h>

int main() {
    int size;

    // Input size and elements of the array
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    int arr[size];
    printf("Enter %d elements -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    // Bubble Sort in Ascending Order
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                // Swap the elements
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

    // Print the sorted array
    printf("\nArray sorted in ascending order: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}
Output:
Array sorted in ascending order: 9 12 21 34 56

Question 19: C Program for Sorting an Array in Descending Order

easy
#include <stdio.h>

int main() {
    int size;

    // Input size and elements of the array
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    int arr[size];
    printf("Enter %d elements -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    // Bubble Sort in Descending Order
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - 1 - i; j++) {
            if (arr[j] < arr[j + 1]) {
                // Swap the elements
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }

    // Print the sorted array
    printf("\nArray sorted in descending order: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}
Output:
Array sorted in descending order: 56 34 21 12 9

Question 20: C Program to Left Rotate an Array

easy
#include <stdio.h>

int main() {
    int size, rotations;

    // Step 1: Input size and elements of the array
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    int arr[size];

    printf("Enter %d elements -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    // Step 2: Input the number of rotations
    printf("Enter the number of positions to rotate the array to the left: ");
    scanf("%d", &rotations);

    // Step 3: Perform left rotation
    int temp[rotations];

    // Store the first 'rotations' elements in a temporary array
    for (int i = 0; i < rotations; i++) {
        temp[i] = arr[i];
    }

    // Shift the rest of the array elements to the left
    for (int i = 0; i < size - rotations; i++) {
        arr[i] = arr[i + rotations];
    }

    // Move the temporary array elements to the end of the array
    for (int i = 0; i < rotations; i++) {
        arr[size - rotations + i] = temp[i];
    }

    // Step 4: Print the rotated array
    printf("Array after left rotation: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}
Output:
Array after left rotation: 3 4 5 1 2

Question 21: C Program to Right Rotate an Array

easy
#include <stdio.h>

int main() {
    int size, rotations;

    // Step 1: Input size and elements of the array
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    int arr[size];

    printf("Enter %d elements -\n", size);
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    // Step 2: Input the number of rotations
    printf("\nEnter the number of positions to rotate the array to the right: ");
    scanf("%d", &rotations);

    // Step 3: Adjust the number of rotations if it is greater than the size of the array
    rotations = rotations % size;

    // Step 4: Perform the right rotation
    int temp[rotations];

    // Store the last 'rotations' elements in a temporary array
    for (int i = 0; i < rotations; i++) {
        temp[i] = arr[size - rotations + i];
    }

    // Shift the rest of the array elements to the right
    for (int i = size - 1; i >= rotations; i--) {
        arr[i] = arr[i - rotations];
    }

    // Move the temporary array elements to the beginning of the array
    for (int i = 0; i < rotations; i++) {
        arr[i] = temp[i];
    }

    // Step 5: Print the rotated array
    printf("Array after right rotation: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}
Output:
Array after right rotation: 4 5 1 2 3

Question 22: C Program to Merge Two Arrays and Sort in Descending Order

medium
#include <stdio.h>

int main() {
    int arr1[] = {5, 3, 8, 1}; // First array
    int arr2[] = {7, 2, 6, 4}; // Second array
    int arr3[100];
    int s1 = 4, s2 = 4, s3 = s1 + s2;
    int i, j, k;

    // Insert elements from arr1 into arr3
    for (i = 0; i < s1; i++) {
        arr3[i] = arr1[i];
    }

    // Insert elements from arr2 into arr3
    for (j = 0; j < s2; j++) {
        arr3[i] = arr2[j];
        i++;
    }

    // Sort the array in descending order using Bubble Sort
    for (i = 0; i < s3; i++) {
        for (k = 0; k < s3 - 1; k++) {
            if (arr3[k] < arr3[k + 1]) {
                j = arr3[k + 1];
                arr3[k + 1] = arr3[k];
                arr3[k] = j;
            }
        }
    }

    // Print the merged and sorted array
    printf("Merged and sorted array (Descending Order): ");
    for (i = 0; i < s3; i++) {
        printf("%d ", arr3[i]);
    }
    printf("\n");

    return 0;
}
Output:
Merged and sorted array (Descending Order): 8 7 6 5 4 3 2 1

Question 23: C Program to Separate Odd and Even Integers into Separate Arrays

easy
#include <stdio.h>

int main() {
    int arr1[10], arr2[10], arr3[10];
    int i, j = 0, k = 0, n;

    printf("Input the number of elements to be stored in the array: ");
    scanf("%d", &n);

    printf("Input %d elements in the array:\n", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &arr1[i]);
    }

    // Separate even and odd numbers
    for (i = 0; i < n; i++) {
        if (arr1[i] % 2 == 0) {
            arr2[j++] = arr1[i];
        } else {
            arr3[k++] = arr1[i];
        }
    }

    // Print Even numbers
    printf("The Even elements are:\n");
    for (i = 0; i < j; i++) {
        printf("%d ", arr2[i]);
    }

    // Print Odd numbers
    printf("\nThe Odd elements are:\n");
    for (i = 0; i < k; i++) {
        printf("%d ", arr3[i]);
    }
    printf("\n");

    return 0;
}
Output:
The Even elements are:
12 18 4
The Odd elements are:
7 9 5

Question 24.1: C Program to Find the Second Smallest Element in an Array

easy
#include <stdio.h>
#include <limits.h>

int main() {
    int arr[50], n, i, j = 0, sml, sml2nd;

    printf("Input the size of the array: ");
    scanf("%d", &n);

    printf("Input %d elements in the array:\n", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    // Find the smallest element
    sml = arr[0];
    for (i = 1; i < n; i++) {
        if (arr[i] < sml) {
            sml = arr[i];
            j = i;  // Store index of smallest element
        }
    }

    // Find the second smallest element
    sml2nd = INT_MAX;
    for (i = 0; i < n; i++) {
        if (i != j && arr[i] < sml2nd) {
            sml2nd = arr[i];
        }
    }

    printf("The second smallest element in the array is: %d\n", sml2nd);
    return 0;
}
Output:
The second smallest element in the array is: 3

Question 24.2: C Program to Find the Second Smallest Element in an Array (Method 2)

easy
#include <stdio.h>
#include <limits.h>

int main() {
    int arr[50], n, i, sml, sml2nd;

    printf("Input the size of the array: ");
    scanf("%d", &n);

    printf("Input %d elements in the array:\n", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    // Initialize smallest and second smallest
    sml = INT_MAX;
    sml2nd = INT_MAX;

    // Find smallest and second smallest
    for (i = 0; i < n; i++) {
        if (arr[i] < sml) {
            sml2nd = sml;
            sml = arr[i];
        } else if (arr[i] < sml2nd && arr[i] != sml) {
            sml2nd = arr[i];
        }
    }

    printf("The second smallest element in the array is: %d\n", sml2nd);
    return 0;
}
Output:
The second smallest element in the array is: 3

Question 25: C Program to Find the Majority Element in an Array

medium
#include <stdio.h>

int main() {
    int arr[] = {4, 8, 4, 6, 7, 4, 4, 8, 4}; 
    int n = sizeof(arr) / sizeof(arr[0]);   
    int candidate = 0, count = 1, i, majorityCount = 0;

    // Step 1: Find the candidate for the majority element
    for (i = 1; i < n; i++) {
        if (arr[candidate] == arr[i])
            count++;
        else
            count--;

        if (count == 0) {
            candidate = i;
            count = 1;
        }
    }

    // Step 2: Verify the candidate by counting its occurrences
    for (i = 0; i < n; i++) {
        if (arr[i] == arr[candidate])
            majorityCount++;
    }

    // Step 3: Check if the candidate is indeed a majority element
    if (majorityCount > n / 2)
        printf("Majority Element: %d\n", arr[candidate]);
    else
        printf("There is no Majority Element in the array.\n");

    return 0;
}
Output:
Majority Element: 4

Question 26: C Program to Find the Missing Number in an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {1, 3, 4, 2, 5, 6, 9, 8}; 
    int n = sizeof(arr) / sizeof(arr[0]) + 1; 
    int i, sum = 0, total;

    printf("The given array is : ");
    for (i = 0; i < n - 1; i++) {
        printf("%d  ", arr[i]);
        sum += arr[i]; 
    }
    printf("\n");

    total = (n * (n + 1)) / 2;

    printf("The missing number is : %d\n", total - sum);

    return 0;
}
Output:
The missing number is: 7

Question 27: C Program to Check if an Element Appears More Than n/2 Times in a Sorted Array

easy
#include <stdio.h>

int main() {
    int arr[] = {1, 2, 2, 2, 2, 4, 5}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    int x = 2; 
    int count = 0;

    // Count occurrences of x in the array
    for (int i = 0; i < n; i++) {
        if (arr[i] == x) {
            count++;
        }
    }

    // Check if count is greater than n/2
    if (count > n / 2) {
        printf("%d appears more than n/2 times in the array.\n", x);
    } else {
        printf("%d does not appear more than n/2 times in the array.\n", x);
    }

    return 0;
}
Output:
2 appears more than n/2 times in the array.

Question 28: C Program to Move All Zeroes to the End of an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {1, 0, 2, 0, 0, 4, 5}; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    int count = 0;
    
    for(int i = 0; i < size; i++) {
        if(arr[i] != 0) {
            int temp = arr[count];
            arr[count] = arr[i];
            arr[i] = temp;
            count++;
        }
    }
    
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}
Output:
1 2 4 5 0 0 0

Question 29: C Program to Move All Zeroes to the Beginning of an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {1, 0, 2, 0, 0, 4, 5}; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    int count = 0;
    
    for(int i = 0; i < size; i++) {
        if(arr[i] == 0) {
            int temp = arr[count];
            arr[count] = arr[i];
            arr[i] = temp;
            count++;
        }
    }
    
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }

    return 0;
}
Output:
0 0 0 1 2 4 5

Question 30: C Program to Print All Unique Elements in an Unsorted Array

medium
#include <stdio.h>
	
int main() {
    int arr1[] = {1, 5, 8, 5, 7, 3, 2, 4, 1, 6, 2};
    int n = sizeof(arr1) / sizeof(int);
    int i, j;

    // Print the original array
    printf("The given array is :  ");
    for (i = 0; i < n; i++) {
        printf("%d  ", arr1[i]);
    }
    printf("\n");

    printf("Unique Elements in the given array are: \n");
    for (i = 0; i < n; i++) {
        // Iterate through the array to find unique elements
        for (j = 0; j < i; j++) {
            // If a duplicate is found, break the loop
            if (arr1[i] == arr1[j])
                break;
        }

        // If 'i' reaches 'j', the current element is unique, hence print it
        if (i == j) {
            printf("%d ", arr1[i]);
        }
    }

    return 0;
}
Output:
1 5 8 7 3 2 4 6

Question 31: C Program to Find the Kth Largest and Kth Smallest Element in an Array

medium
#include <stdio.h>

int main() {
    int arr[] = {7, 10, 4, 3, 20, 15}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    int k, i, j, minIndex, temp;

    printf("Enter the value of K: ");
    scanf("%d", &k);

    for (i = 0; i < n - 1; i++) {
        minIndex = i;
        for (j = i + 1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }
        }
        temp = arr[minIndex];
        arr[minIndex] = arr[i];
        arr[i] = temp;
    }

    if (k > 0 && k <= n) {
        printf("The %dth smallest number is: %d\n", k, arr[k - 1]);
        printf("The %dth largest number is: %d\n", k, arr[n - k]);
    } else {
        printf("Invalid value of K. It must be between 1 and %d.\n", n);
    }

    return 0;
}
Output:
The 3th smallest number is: 7
The 3th largest number is: 10

Question 32: C Program to Print All Prime Numbers in an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
    int n = sizeof(arr) / sizeof(arr[0]); 

    printf("Prime numbers in the array are: ");
    for (int i = 0; i < n; i++) {
        int num = arr[i];
        int isPrime = 1; 

        if (num <= 1) isPrime = 0; 
        for (int j = 2; j * j <= num; j++) {
            if (num % j == 0) {
                isPrime = 0; 
                break; 
            }
        }

        if (isPrime) {
            printf("%d ", num); 
        }
    }
    printf("\n");

    return 0;
}
Output:
Prime numbers in the array are: 2 3 5 7 11 13

Question 32: C Program to Print All Prime Numbers in an Array (Method 2)

easy
#include <stdio.h>

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
    int n = sizeof(arr) / sizeof(arr[0]); 

    printf("Prime numbers in the array are: ");
    for (int i = 0; i < n; i++) {
        int num = arr[i];
        int isPrime = 1; 

        if (num <= 1) isPrime = 0; 
        for (int j = 2; j <= arr[i] / 2; j++) {
            if (arr[i] % j == 0) {
                isPrime = 0; 
                break; 
            }
        }

        if (isPrime) {
            printf("%d ", num); 
        }
    }
    printf("\n");

    return 0;
}
Output:
Prime numbers in the array are: 2 3 5 7 11 13

Question 33: C Program to Separate Prime and Non-Prime Numbers in an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    int prime[50], nonPrime[50]; 
    int primeCount = 0, nonPrimeCount = 0; 
    for (int i = 0; i < n; i++) {
        int num = arr[i];
        int isPrime = 1; 
        if (num <= 1) {
            isPrime = 0;
        } else {
            for (int j = 2; j * j <= num; j++) {
                if (num % j == 0) {
                    isPrime = 0; 
                    break; 
                }
            }
        }
        if (isPrime) {
            prime[primeCount++] = num; 
        } else {
            nonPrime[nonPrimeCount++] = num; 
        }
    }

    printf("Prime numbers: ");
    for (int i = 0; i < primeCount; i++) {
        printf("%d ", prime[i]);
    }
    printf("\n");

    printf("Non-prime numbers: ");
    for (int i = 0; i < nonPrimeCount; i++) {
        printf("%d ", nonPrime[i]);
    }
    printf("\n");

    return 0;
}
Output:
Prime numbers: 2 3 5 7 11 13
Non-prime numbers: 4 6 8 9 10 12 14 15

Question 34: C Program to Print All Negative Elements in an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {12, -7, 5, -3, 8, -1, 0, 4, -2}; 
    int n = sizeof(arr) / sizeof(arr[0]); 

    printf("Negative elements in the array: ");
    for (int i = 0; i < n; i++) {
        if (arr[i] < 0) {
            printf("%d ", arr[i]); 
        }
    }
    printf("\n");

    return 0;
}
Output:
Negative elements in the array: -7 -3 -1 -2

Question 35: C Program to Count the Total Number of Negative Elements in an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {12, -7, 5, -3, 8, -1, 0, 4, -2}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    int count = 0;
    for (int i = 0; i < n; i++) {
        if (arr[i] < 0) {
            count++; 
        }
    }

    printf("Total number of negative elements in the array: %d\n", count);

    return 0;
}
Output:
Total number of negative elements in the array: 4

Question 36: C Program to Replace All Even Numbers with 0 and Odd Numbers with 1

easy
#include <stdio.h>

int main() {
    int arr[] = {12, 7, 5, 4, 8, 3, 0, 9, 10}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    for (int i = 0; i < n; i++) {
        if (arr[i] % 2 == 0) {
            arr[i] = 0; 
        } else {
            arr[i] = 1; 
        }
    }

    printf("Modified array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}
Output:
Modified array: 0 1 1 0 0 1 0 1 0

Question 37: C Program to Replace All Prime Numbers with 0 and Non-Prime Numbers with 1

easy
#include <stdio.h>

int main() {
    int arr[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    int n = sizeof(arr) / sizeof(arr[0]); 

    for (int i = 0; i < n; i++) {
        int is_prime = 1; 
        if (arr[i] <= 1) {
            is_prime = 0; 
        } else {
            for (int j = 2; j * j <= arr[i]; j++) {
                if (arr[i] % j == 0) {
                    is_prime = 0; 
                    break;
                }
            }
        }

        if (is_prime) {
            arr[i] = 0; 
        } else {
            arr[i] = 1; 
        }
    }

    printf("Modified array: ");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}
Output:
Modified array: 0 0 1 0 1 0 1 1 1

Question 38: C Program to Find the Average of Numbers in an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {10, 20, 30, 40, 50}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    int sum = 0; 
    for (int i = 0; i < n; i++) {
        sum += arr[i];
    }

    float average = (float)sum / n;

    printf("The average of the numbers in the array is: %.2f\n", average);

    return 0;
}
Output:
The average of the numbers in the array is: 30.00

Question 39: C Program to Count the Total Number of Prime Numbers in an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    int primeCount = 0; 
    for (int i = 0; i < n; i++) {
        int num = arr[i];
        int isPrime = 1; 
        if (num <= 1) {
            isPrime = 0; 
        } else {
            for (int j = 2; j * j <= num; j++) {
                if (num % j == 0) {
                    isPrime = 0;
                    break; 
                }
            }
        }

        if (isPrime) {
            primeCount++;
        }
    }

    printf("Total number of prime numbers in the array: %d\n", primeCount);

    return 0;
}
Output:
Total number of prime numbers in the array: 4

Question 40: C Program to Find the Sum of All Array Elements

easy
#include <stdio.h>

int main() {
    int arr[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    int sum = 0; 
    for(int i = 0; i < size; i++){
        sum = sum + arr[i];
    }
    printf("Sum : %d", sum);

    return 0;
}
Output:
Sum: 54

Question 41: C Program to Find the Sum of Even Numbers in an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    int sumEven = 0; 
    // Check if the number is even
    for (int i = 0; i < size; i++) {
        if (arr[i] % 2 == 0) {
            sumEven += arr[i];
        }
    }
    printf("Sum of even numbers is : %d", sumEven);
    return 0;
}
Output:
Sum of even numbers is: 30

Question 42: C Program to Find the Sum of Odd Numbers in an Array

easy
#include <stdio.h>

int main() {
    int arr[] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    int size = sizeof(arr) / sizeof(arr[0]); 
    int sumOdd = 0; 

    for (int i = 0; i < size; i++) {
        // Check if the number is odd
        if (arr[i] % 2 != 0) {
            sumOdd += arr[i];
        }
    }
    printf("Sum of odd numbers is : %d", sumOdd);
    return 0;
}
Output:
Sum of odd numbers is: 24

Question 43: C Program to Find the Average of Even Numbers in an Array

easy
#include <stdio.h>

int main() {
    int arr[100], size, i, countEven = 0;
    float sum = 0, avg;
    printf("Enter Array Size : ");
    scanf("%d", &size);
    printf("Enter the elements : ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
        if (arr[i] % 2 == 0) {
            sum += arr[i];
            countEven++;
        }
    }
    if (countEven == 0) {
        printf("No even numbers entered, cannot calculate average.");
    } else {
        avg = sum / countEven;
        printf("Average of even numbers is : %.2f", avg);
    }
    return 0;
}
Output:
Average of even numbers is: 4.00

Question 44: C Program to Find the Average of Odd Numbers in an Array

easy
#include <stdio.h>

int main() {
    int arr[100], size, i, countOdd = 0;
    float sum = 0, avg;
    printf("Enter Array Size : ");
    scanf("%d", &size);
    printf("Enter the elements : ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
        if (arr[i] % 2 == 1) {
            sum += arr[i];
            countOdd++;
        }
    }
    if (countOdd == 0) {
        printf("No odd numbers entered, cannot calculate average.");
    } else {
        avg = sum / countOdd;
        printf("Average of odd numbers is : %.2f", avg);
    }
    return 0;
}
Output:
Average of odd numbers is: 5.00

Question 45: C Program to Find the Largest Element in an Array Without Sorting

easy
#include <stdio.h>

int main() {
    int arr[100], size, i, max;

    printf("Enter Array Size : ");
    scanf("%d", &size);

    printf("Enter the elements : ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    max = arr[0];
    for (i = 1; i < size; i++) {
        if( arr[i] > max ) {
            max = arr[i];
        }
    }
    printf("Largest element in the array is : %d", max);

    return 0;
}
Output:
Largest element in the array is: 47

Question 46: C Program to Find the Smallest Element in an Array Without Sorting

easy
#include <stdio.h>

int main() {
    int arr[100], size, i, min;

    printf("Enter Array Size : ");
    scanf("%d", &size);

    printf("Enter the elements : ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    min = arr[0];

    for (i = 1; i < size; i++) {
        if (arr[i] < min) {
            min = arr[i];
        }
    }

    printf("Smallest element in the array is : %d", min);

    return 0;
}
Output:
Smallest element in the array is: 5

Question 47: C Program to Find the Most Repeated Number in an Array

medium
#include <stdio.h>

int main() {
    int arr[100], i, j, count, maxCount, mostRepeated, size;

    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    maxCount = 0; 
    mostRepeated = arr[0]; 
    for (i = 0; i < size; i++) {
        count = 1; 
        for (j = i + 1; j < size; j++) {
            if (arr[i] == arr[j]) {
                count++; 
            }
        }
        if (count > maxCount) {
            maxCount = count;
            mostRepeated = arr[i];
        }
    }
    printf("Most repeated number: %d (Count: %d)\n", mostRepeated, maxCount);

    return 0;
}
Output:
Most repeated number: 2 (Count: 3)

Question 48: C Program to Find Array Elements That Occur Exactly 2 Times

medium
#include <stdio.h>

int main() {
    int arr[100], i, j, count, size;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    printf("Elements that occur exactly two times in the array: ");
    for (i = 0; i < size; i++) {
        count = 0;
        for (j = 0; j < size; j++) {
            if (arr[i] == arr[j]) {
                if (i > j) {
                    count--;
                    break;
                }
                count++; 
            }
        }
        if (count == 2) {
            printf("%d ", arr[i]);
        }
    }
    return 0;
}
Output:
Elements that occur exactly two times in the array: 1 2

Question 49: C Program to Find Non-Prime Numbers in an Array

easy
#include <stdio.h>

int main() {
    int arr[100], i, j, size, flag;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    printf("Non-prime numbers in the array: ");
    for (i = 0; i < size; i++) {
        if (arr[i] == 1) {
            printf("%d ", arr[i]); 
            continue; 
        }
        flag = 0; 
        for (j = 2; j <= arr[i] / 2; j++) {
            if (arr[i] % j == 0) {
                flag = 1;
                break;
            }
        }
        if (flag == 1) {
            printf("%d ", arr[i]);
        }
    }
    return 0;
}
Output:
Non-prime numbers in the array: 4 6 8

Question 50: C Program to Remove All Odd Numbers from an Array

easy
#include <stdio.h>

int main() {
    int arr[100], i, j, size;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < size; i++) {
        if (arr[i] % 2 == 1) {
            for (j = i; j < size - 1; j++) {
                arr[j] = arr[j + 1];
            }
            size = size - 1;
            i--; 
        }
    }
    printf("Array after removing odd numbers: ");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
Output:
Array after removing odd numbers: 2 4 6

Question 51: C Program to Remove All Even Numbers from an Array

easy
#include <stdio.h>

int main() {
    int arr[100], i, j, size;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < size; i++) {
        if (arr[i] % 2 == 0) {
            for (j = i; j < size - 1; j++) {
                arr[j] = arr[j + 1];
            }
            size = size - 1;
            i--; 
        }
    }
    printf("Array after removing even numbers: ");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
Output:
Array after removing even numbers: 1 3 5 7

Question 52: C Program to Remove All Prime Numbers from an Array

medium
#include <stdio.h>

int main() {
    int arr[100], i, j, size, flag;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < size; i++) {
        if (arr[i] < 2) {
            flag = 1; 
        } else {
            flag = 0;
            for (j = 2; j <= arr[i] / 2; j++) {
                if (arr[i] % j == 0) {
                    flag = 1; 
                    break;
                }
            }
        }
        if (flag == 0) {
            for (j = i; j < size - 1; j++) {
                arr[j] = arr[j + 1];
            }
            size = size - 1;
            i--; 
        }
    }
    printf("Array after removing prime numbers: ");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
Output:
Array after removing prime numbers: 4 6 8

Question 53: C Program to Delete Two Elements After the Occurrence of an Even Number

medium
#include <stdio.h>

int main() {
    int arr[100], i, j, size;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < size; i++) {
        if (arr[i] % 2 == 0) {
            if (i <= size - 3) {
                for (j = i + 1; j < size - 2; j++) {
                    arr[j] = arr[j + 2];
                }
                size -= 2;
            } else if (i == size - 2) {
                size -= 1;
            }
        }
    }
    printf("Array after deleting two elements: ");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
Output:
Array after deleting two elements: 3 4 6 8

Question 54: C Program to Delete Two Elements After the Occurrence of a Prime Number

medium
#include <stdio.h>

int main() {
    int arr[100], i, j, size, flag;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < size; i++) {
        flag = 1;
        if (arr[i] == 1) {
            flag = 0;
        } else {
            for (j = 2; j <= arr[i] / 2; j++) {
                if (arr[i] % j == 0) {
                    flag = 0;
                    break;
                }
            }
        }
        if (flag == 1) {
            if (i <= size - 3) {
                for (j = i + 1; j < size - 2; j++) {
                    arr[j] = arr[j + 2];
                }
                size -= 2;
            } else if (i == size - 2) {
                size -= 1;
            }
        }
    }
    printf("Array after deleting two elements: ");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
Output:
Array after deleting two elements: 4 5 8 9 10

Question 55: C Program to Delete Two Elements After the Occurrence of an Odd Number

medium
#include <stdio.h>

int main() {
    int arr[100], i, j, size;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    for (i = 0; i < size; i++) {
        if (arr[i] % 2 != 0) {
            if (i <= size - 3) {
                for (j = i + 1; j < size - 2; j++) {
                    arr[j] = arr[j + 2];
                }
                size -= 2;
            } else if (i == size - 2) {
                size -= 1;
            }
        }
    }
    printf("Array after deleting two elements: ");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
Output:
Array after deleting two elements: 2 3 6 7 8

Question 56: C Program to Delete Three Elements After the Occurrence of a Prime Number

medium
#include <stdio.h>

int main() {
    int arr[100], size, flag, i, j;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    for (i = 0; i < size; i++) {
        flag = 0;
        if (arr[i] == 1) {
            flag = 1;
        }
        for (j = 2; j < arr[i]; j++) {
            if (arr[i] % j == 0) {
                flag = 1;
                break;
            }
        }
        if (flag == 0) {
            if (i <= size - 4) {
                for (j = i + 1; j < size - 3; j++) {
                    arr[j] = arr[j + 3];
                }
                size -= 3;
            } else if (i == size - 3) {
                size -= 2;
            } else if (i == size - 2) {
                size -= 1;
            }
        }
    }

    printf("Array after deleting three elements: ");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}
Output:
Array after deleting three elements: 2 4 7 8 9 10

Question 57: C Program to Find the Third Largest Number in an Array

easy
#include <stdio.h>
#include <limits.h> 

int main() {
    int arr[100], size;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    int firstMax = INT_MIN, secondMax = INT_MIN, thirdMax = INT_MIN;
    for (int i = 0; i < size; i++) {
        if (arr[i] > firstMax) {
            thirdMax = secondMax;
            secondMax = firstMax;
            firstMax = arr[i];
        } else if (arr[i] > secondMax && arr[i] < firstMax) {
            thirdMax = secondMax;
            secondMax = arr[i];
        } else if (arr[i] > thirdMax && arr[i] < secondMax) {
            thirdMax = arr[i];
        }
    }
    if (thirdMax == INT_MIN) {
        printf("Array doesn't have three distinct numbers.\n");
    } else {
        printf("The third largest number is: %d\n", thirdMax);
    }

    return 0;
}
Output:
The third largest number is: 12

Question 58: C Program to Find the Third Smallest Number in an Array

easy
#include <stdio.h>
#include <limits.h>  

int main() {
    int arr[100], size;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    int firstMin = INT_MAX, secondMin = INT_MAX, thirdMin = INT_MAX;
    for (int i = 0; i < size; i++) {
        if (arr[i] < firstMin) {
            thirdMin = secondMin;
            secondMin = firstMin;
            firstMin = arr[i];
        } else if (arr[i] < secondMin && arr[i] > firstMin) {
            thirdMin = secondMin;
            secondMin = arr[i];
        } else if (arr[i] < thirdMin && arr[i] > secondMin) {
            thirdMin = arr[i];
        }
    }
    if (thirdMin == INT_MAX) {
        printf("Array doesn't have three distinct numbers.\n");
    } else {
        printf("The third smallest number is: %d\n", thirdMin);
    }

    return 0;
}
Output:
The third smallest number is: 10

Question 59: C Program to Find the Average of Prime and Non-Prime Numbers in an Array

medium
#include <stdio.h>

int main() {
    int arr[100], size;
    int sumPrime = 0, countPrime = 0;
    int sumNonPrime = 0, countNonPrime = 0;
    printf("Enter the size of the array: ");
    scanf("%d", &size);
    printf("Enter the elements: ");
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }
    for (int i = 0; i < size; i++) {
        int num = arr[i];
        int isPrime = 1; 
        if (num <= 1) {
            isPrime = 0;
        } else {
            for (int j = 2; j * j <= num; j++) {
                if (num % j == 0) {
                    isPrime = 0;
                    break;
                }
            }
        }
        if (isPrime) {
            sumPrime += num;
            countPrime++;
        } else {
            sumNonPrime += num;
            countNonPrime++;
        }
    }
    float avgPrime = countPrime ? (float)sumPrime / countPrime : 0;
    float avgNonPrime = countNonPrime ? (float)sumNonPrime / countNonPrime : 0;

    printf("Average of prime numbers: %.2f\n", avgPrime);
    printf("Average of non-prime numbers: %.2f\n", avgNonPrime);

    return 0;
}
Output:
Average of prime numbers: 4.67
Average of non-prime numbers: 6.00

Question 60: C Program to Delete Odd or Even Numbers Based on Array Sum

medium
#include <stdio.h>

int main() {
    int arr[100], size, sum = 0;

    // Input size of the array
    printf("Enter the size of the array: ");
    scanf("%d", &size);

    // Input elements of the array and calculate sum
    printf("Enter the elements: ");
    for (int i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
        sum += arr[i];
    }

    // Print the sum
    printf("The sum of the array elements is: %d\n", sum);

    // Condition to delete odd or even numbers based on the sum
    int deleteOdd = (sum > 100) ? 1 : 0;
    printf("Sum is %s 100, deleting %s numbers...\n", (deleteOdd ? "greater than" : "less than or equal to"), (deleteOdd ? "odd" : "even"));

    // Delete odd or even numbers and shift the elements
    for (int i = 0; i < size; i++) {
        if ((deleteOdd && arr[i] % 2 != 0) || (!deleteOdd && arr[i] % 2 == 0)) {
            for (int j = i; j < size - 1; j++) {
                arr[j] = arr[j + 1];
            }
            size--;  // Decrease size of array
            i--;     // Recheck current index after shifting
        }
    }

    // Print the modified array
    printf("Modified array: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    
    return 0;
}
Output:
The sum of the array elements is: 105
Sum is greater than 100, deleting odd numbers...
Modified array: 20 30 10