C Program to find Second largest Number in an Array

How to write a C Program to find the Second largest Number in an Array with example.? Before going into this second largest number in c example.

C Program to find Second largest Number in an Array

This program for finding the second largest number asks the user to enter the Array size, Array elements, and the Search item value. Next, this C program will find the Second largest Number in this Array using For Loop.

#include <stdio.h>
#include <limits.h>
 
int main()
{
	int arr[50], i, Size;
	int first, second;
	
	printf("\n Please Enter the Number of elements in an array  :  ");
	scanf("%d", &Size);
	
	printf("\n Please Enter %d elements of an Array \n", Size);
	for (i = 0; i < Size; i++)
	{
		scanf("%d", &arr[i]);
    }
	 
	first = second = INT_MIN;  
	   
	for (i = 0; i < Size; i++)
	{
		if(arr[i] > first)
		{
			second = first;
			first = arr[i];
		}
		else if(arr[i] > second && arr[i] < first)
		{
			second = arr[i];
		}	
	}
	printf("\n The Largest Number in this Array =  %d", first);
	printf("\n The Second Largest Number in this Array =  %d", second);
	
	return 0;
}
C Program to find Second largest Number in an Array 1

In this C Program to find second largest number in an array, We declared 1 One Dimensional Arrays arr[] of size 10 and also declared i to iterate the Array elements. Please refer to Array in C article.

Below statements will ask the user to enter the array arr[] size (Number of elements an Array can hold), and assign the user entered values to Size variable.

printf("\n Please Enter the size of an array \n");
scanf("%d",&Size);

Below For loop will help to iterate each cell present in a[5] array. Condition inside the for loops (i < Size) will ensure the compiler, not to exceed the array limit.

The C Programming scanf statement inside the for loop store the user entered values into individual array element such as arr[0], arr[1], arr[2], arr[3], arr[4]

for(i = 0; i < Size; i++)
{
 	scanf("%d",&arr[i]);
}

In the next line, We have one more for loop, used to iterate each element in an array. If Statement inside the For loop will check whether arr[i] is equal to search item or not. If it is true, then Flag will become 1 and exit from the Loop (using Break Statement)

for (i = 0; i < Size; i++)
{
	if(arr[i] > first)
	{
		second = first;
		first = arr[i];
	}
	else if(arr[i] > second && arr[i] < first)
	{
		second = arr[i];
	}	
}

From the above screenshot, you can observe that the user inserted values for the second largest number are
a[5] = {10, 90, 80, 90, 80}

First Iteration: for (i = 0; 0 < 5; 0++)

The value of i will be 0, and the condition (i < 5) is True. So, program will start executing the statements inside the loop until the condition fails.

If (arr[i] > Search)  => if(10 > Int_Min) – Condition is True
second = Int_Min
first = 10

Second Iteration: for (i = 1; 1 < 5; 1++)
The condition (1 < 5) is True.
If (arr[i] > Search)  => if(90 > 10) – Condition is True
second = 10
first = 90

Third Iteration: for (i = 2; 2 < 5; 2++) – The condition (2 < 5) is True.

If (arr[i] > Search)  => if(80 > 90) – Condition is false. So, it will enter into Else If block

else if(arr[i] > second && arr[i] < first)

=> else if(80 > 10 && 80 < 90) – Condition is True
second = arr[i] = 80

Fourth Iteration: for (i = 3; 3 < 5; 3++) – The condition (3 < 5) is True.

If (arr[i] > Search)  => if(90 > 90) – Condition is false. So, it will enter into Else If block

else if(arr[i] > second && arr[i] < first) => else if(90 > 80 && 90 < 90)
Condition is False

Fifth Iteration: for (i = 4; 4 < 5; 4++) – The condition (4 < 5) is True.

If (arr[i] > Search)  => if(80 > 90) – Condition is false. So, it will enter into Else If block

else if(arr[i] > second && arr[i] < first) => else if(80 > 80 && 80 < 90) – Condition is False

Sixth Iteration: for (i = 5; 5 < 5; 5++)
The condition (4 < 5) is False. So, it will exit from the For Loop

Let me try different array elements for C Program to find Second largest Number in an Array

 Please Enter the Number of elements in an array  :  10

 Please Enter 10 elements of an Array 
10 10 10 10 10 -5 -5 -2 10 10

 The Largest Number in this Array =  10
 The Second Largest Number in this Array =  -2