codescracker
c++

C++ Program to Find Second Largest Element in an Array



« C++ Tutorial C++ Example »

This article provides programs in C++ to find and print the second largest element of an array entered by user. The program is created using both for and while loop.

Find Second Largest Element using for Loop

The question is, write a C++ program to find and print second largest element in given array. The program given below is its answer:

#include<iostream>

using namespace std;
int main()
{
   int i, arr[10], large, slarge;
   cout<<"Enter 10 Array Elements: ";
   for(i=0; i<10; i++)
      cin>>arr[i];
   large = arr[0];
   for(i=0; i<10; i++)
   {
      if(large<arr[i])
         large = arr[i];
   }
   slarge = arr[0];
   for(i=0; i<10; i++)
   {
      if(slarge<arr[i])
      {
         if(arr[i]!=large)
            slarge = arr[i];
      }
   }
   cout<<"\nSecond Largest Element = "<<slarge;
   cout<<endl;
   return 0;
}

The snapshot given below shows the initial output produced by above C++ program on finding and printing the second largest element from given array:

c++ program find second largest element

Now supply the input say 1, 10, 2, 9, 3, 8, 4, 7, 5, 6 as ten elements and press ENTER key to find and print the second largest element from given array like shown in the snapshot given below:

find second largest element in array c++

In above program,

Now the question is, what if user doesn't wants to enter 10 elements? That is, what if user wants to enter some n elements and based on those n elements, he/she wants to find the second largest element. So we've to modify the program.

Therefore let's modify the above program and create another program that allows user to define the size of array too along with its elements of given size like shown in the program given below:

#include<iostream>

using namespace std;
int main()
{
   int tot, i, arr[100], large, slarge;
   cout<<"Enter the Size of Array: ";
   cin>>tot;
   cout<<"Enter "<<tot<<" Array Elements: ";
   for(i=0; i<tot; i++)
      cin>>arr[i];
   large = arr[0];
   for(i=0; i<tot; i++)
   {
      if(large<arr[i])
         large = arr[i];
   }
   slarge = arr[0];
   for(i=0; i<tot; i++)
   {
      if(slarge<arr[i])
      {
         if(arr[i]!=large)
            slarge = arr[i];
      }
   }
   cout<<"\nSecond Largest Element = "<<slarge;
   cout<<endl;
   return 0;
}

Here is its sample run with user input 5 as size and 1, 5, 2, 4, 4 as five elements:

print second largest element in array c++

Find Second Largest Element using while Loop

This program is almost similar to previous program, except its approach. This program is created using while loop. Rest of the things are exactly same as of previous program.

#include<iostream>

using namespace std;
int main()
{
   int tot, i=0, arr[10], large, slarge;
   cout<<"Enter the Size of Array: ";
   cin>>tot;
   cout<<"Enter "<<tot<<" Array Elements: ";
   while(i<tot)
   {
      cin>>arr[i];
      i++;
   }
   large = arr[0];
   i=0;
   while(i<tot)
   {
      if(large<arr[i])
         large = arr[i];
      i++;
   }
   slarge = arr[0];
   i=0;
   while(i<tot)
   {
      if(slarge<arr[i])
      {
         if(arr[i]!=large)
            slarge = arr[i];
      }
      i++;
   }
   cout<<"\nSecond Largest Element = "<<slarge;
   cout<<endl;
   return 0;
}

This program does exactly the same job as of previous program.

C++ Online Test


« C++ Tutorial C++ Example »



© Copyright 2021. All Rights Reserved.

CodesCracker