Skip to main content

Featured

Merge Sort in C++

  Merge Sort in C++ Introduction Merge Sort is a popular sorting algorithm that follows the Divide and Conquer approach. It divides an array into smaller subarrays, recursively sorts those subarrays, and finally merges the sorted subarrays to produce a completely sorted array. In this tutorial, we will learn how to implement Merge Sort in C++ . The program divides the array into two halves using the mid index, recursively sorts both halves, and then combines them using the merge() function. Merge Sort has a time complexity of O(n log n) in the best, average, and worst cases. Table of Contents Algorithm C++ Program Input Sample Output Output Explanation Dry Run Flow of Execution Time Complexity Space Complexity Applications Key Points Interview Questions Frequently Asked Questions Keywords Conclusion Algorithm Start the program. Read the size of the array. Read the array elements from the user. Call the mer...

C program to find the third largest element in an array using conditional checks

Find Third Largest Element in Array - C Program

๐Ÿ”ข Find the Third Largest Element in an Array (C Program)

#include <stdio.h>

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

    if (num < 3)
    {
        printf("Invalid! Need at least 3 elements to find the third largest element.\n");
        return 1;
    }

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

    int first, second, third;

    // Sort first 3 elements
    if (a[0] >= a[1] && a[0] >= a[2])
    {
        first = a[0];
        if (a[1] >= a[2])
        {
            second = a[1];
            third = a[2];
        }
        else
        {
            second = a[2];
            third = a[1];
        }
    }
    else if (a[1] >= a[0] && a[1] >= a[2])
    {
        first = a[1];
        if (a[0] >= a[2])
        {
            second = a[0];
            third = a[2];
        }
        else
        {
            second = a[2];
            third = a[0];
        }
    }
    else
    {
        first = a[2];
        if (a[0] >= a[1])
        {
            second = a[0];
            third = a[1];
        }
        else
        {
            second = a[1];
            third = a[0];
        }
    }

    for (int i = 3; i < num; i++)
    {
        if (a[i] > first)
        {
            third = second;
            second = first;
            first = a[i];
        }
        else if (a[i] > second && a[i] != first)
        {
            third = second;
            second = a[i];
        }
        else if (a[i] > third && a[i] != second && a[i] != first)
        {
            third = a[i];
        }
    }

    if (first == second || second == third)
    {
        printf("There is no distinct third largest element.\n");
    }
    else
    {
        printf("The third largest element is: %d\n", third);
    }

    return 0;
}
  

๐Ÿ“˜ Explanation:

✅ First, the code reads the number of elements and validates it should be at least 3.
✅ It initializes the first, second, and third largest elements by sorting the first 3 manually.
✅ Then it iterates from the 4th element to update first, second, and third as needed.
✅ Finally, it ensures all 3 values are distinct before printing the third largest.

๐Ÿงช Sample Output:

Enter the size of the array:
6
Enter 6 elements:
1 4 5 2 9 7
The third largest element is: 5
    

๐Ÿท️ Keywords:

C program for third largest number, top 3 numbers in array, array sorting in C, C max elements, competitive programming

Comments

Popular Posts

๐ŸŒ™