2.1k views
1 vote
Find the second largest and second smallest element in a given array. You can hardcode/declare the array in your program.

User Avirup
by
6.4k points

1 Answer

6 votes

Answer:

Program for Second largest in an array:-

#include <bits/stdc++.h>

using namespace std;

int main()

{

int f,s,n; //declaring 3 variables f for first largest s for second largest n is size.

cin>>n;//taking input size of the array.

if(n<2)//n should be greater than 2..

cout<<"n should be greater than 2"<<endl;

int a[n];// array of size n.

for(int i=0;i<n;i++)

{

cin>>a[i];

}

f = s = INT_MIN;//initialising f and s with minimum value possible.

for (int i =0; i <n;i ++)

{

if (a[i] > f)

{

s = f;

f = a[i];

}

else if (a[i] > s && a[i] != f)

s = a[i];

}

if (s == INT_MIN)

cout<<"No second largest exists"<<endl;

else

cout<<"Second largest element is :"<<s;

return 0;

}

Program for second smallest element is:-

#include <bits/stdc++.h>

using namespace std;

int main()

{

int f,s,n; //declaring 3 variables f for first smallest s for second smallest n is size.

cin>>n;//taking input size of the array.

if(n<2)//n should be greater than 2..

cout<<"n should be greater than 2"<<endl;

int a[n];// array of size n.

for(int i=0;i<n;i++)

{

cin>>a[i];

}

f = s = INT_MAX;//initializing f and s with maximum value possible.

for (int i =0; i <n;i ++)

{

if (a[i]<f)

{

s = f;

f = a[i];

}

else if (a[i] < s && a[i] != f)

s = a[i];

}

if (s == INT_MAX)

cout<<"No second smallest exists"<<endl;

else

cout<<s;//it is the second smallest element...

return 0;

}

Step-by-step explanation:

For Second largest:-

1. Declare 3 variables f, s and n. where n is size the array f is first largest and s is second largest.

2. Initialize f and s with minimum value possible.

3. Iterate over the array a and do the following steps:-

1.If element at ith position is greater than f. Then update f and s.

s=f and f=a[i].

2.If the element is between s and f then update s as.

s=a[i].

4. Print s because it is the second largest in the array.

For Second smallest:-

1. Declare 3 variables f, s and n. where n is size the array f is first smallest and s is second smallest.

2. Initialize f and s with minimum value possible.

3. Iterate over the array a and do the following steps:-

1.If element at ith position is smaller than f. Then update f and s.

s=f and f=a[i].

2.If the element is between s and f then update s as.

s=a[i].

4. Print s because it is the second smallest in the array.

User Jjxtra
by
7.1k points