C++ Exercises: Find second largest element in a given array of integers

C++ Array: Exercise-3 with Solution

Write a C++ program to find second largest element in a given array of integers.

Sample Solution:

C++ Code :

using namespace std;
void second_largest(int nums[], int arr_size)
   int i, first_element, second_element;
    /* There should be atleast two elements */
    if (arr_size < 2)
        cout<< " Invalid Input ";
    first_element = second_element = INT_MIN;
    for (i = 0; i < arr_size ; i ++)
        if (nums[i] > first_element)
            second_element = first_element;
            first_element = nums[i];

        else if (nums[i] > second_element && nums[i] != first_element)
            second_element = nums[i];
    if (second_element == INT_MIN)
        cout<< "No second largest element";
        cout<< "\nThe second largest element is: " <<second_element;

int main()
    int nums[] = {7, 12, 9, 15, 19, 32, 56, 70};
    int n = sizeof(nums)/sizeof(nums[0]);
    cout << "Original array: ";
    for (int i=0; i < n; i++) 
    cout << nums[i] <<" ";
   second_largest(nums, n);
    return 0;

Sample Output:

Original array: 7 12 9 15 19 32 56 70 
The second largest element is: 56


Flowchart: Find second largest element in a given array of integers

C++ Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a C++ program to find the largest three elements in an array.
Next: Write a C++ program to find k largest elements in a given array of integers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

Share this Tutorial / Exercise on : Facebook and Twitter

C++ Programming: Tips of the Day

Can I assume (bool)true == (int)1 for any C++ compiler?

According to the standard, you should be safe with that assumption. The C++ bool type has two values - true and false with corresponding values 1 and 0.

The thing to watch about for is mixing bool expressions and variables with BOOL expression and variables. The latter is defined as FALSE = 0 and TRUE != FALSE, which quite often in practice means that any value different from 0 is considered TRUE.

A lot of modern compilers will actually issue a warning for any code that implicitly tries to cast from BOOL to bool if the BOOL value is different than 0 or 1

Ref: https://bit.ly/3PWhs5N