## C Program to find Second Largest element in the array

### Description

```Get array size n and n elements of array, then find the second largest element among those elements.
Input:
5
5 7 9 3 1
Output:
7```

### Solution

```#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
int main()
{
int *a,n,i,max,second_max;
printf("Enter size of array:");
scanf("%d",&n);

a=malloc(sizeof(int)*n);

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

max=INT_MIN;
second_max=INT_MIN;
for(i=0;i<n;i++)
{
if(a[i]>max)
{
second_max=max;
max=a[i];
}
else if(a[i] > second_max && a[i]!=max)
{
second_max=a[i];
}
}

printf("%d",second_max);
return 0;
}```

### Explanation

```Initialize max and second_max with INT_MIN(INT_MIN is constant holds minimum integer value)

visit every node in the array
a) If the current element in array a[i] is greater than max. Then update max and second_max as,
second_max = max
max = arr[i]
b) If the current element is lesser than max and greater than second_max,
then update second_max to store the value of current variable as
second_max = arr[i]
print the value stored in second_max.

```

#### Author - Ramesh P Natarajan

Learner, Professor, Technology Trainer, Software Developer and Content Marketer, very much passionate in the field of Software Application Development, Machine Learning and Search Engine Optimization.

Write to: [email protected]

### Interesting Pattern Programs: for more Patterns

```Input:
5
Output:
*
**
***
****
*****
****
***
**
*Solution```
```Input:
5
Output:
*
***
*****
*******
*********
*******
*****
***
*Solution```
```Input:
5
Output:
*        *
**      **
***    ***
****  ****
**********Solution```
```Input:
5
Output:
*       *
**     **
***   ***
**** ****
*********Solution```
```Input:
5
Output:
*       *
**     **
***   ***
**** ****
*********
**** ****
***   ***
**     **
*       *Solution```
```Input:
5
Output:
*********
*******
*****
***
*
***
*****
*******
*********Solution```