Home » C programs » C One Dimensional Array programs

C program to find second largest elements in a one dimensional array

In this article, we are going to write a C program to find the second maximum element from one dimensional array.
Submitted by Radib Kar, on December 04, 2018

Problem statement: Write a C program to find second largest element in a one dimensional array.

Example:

    Input : 
    arr[] = {10, 8, 7, 12, 14, 9}

    Output : 
    Second largest element: 12

    Input : 
    arr[] = {4, 6, 11, 10, 4}

    Output : 
    Second largest element: 10

Algorithm:

  1. Declare two variables first_large_ele and second_large_ele as int.
  2. Initialise both the variable with INT_MIN (i.e 0), first_large_ele = second_large_ele = 0.
  3. Run for loop over array.
    • if array[index] is greater than first_large_ele variable value then update the second_large_ele with first_large_ele variable value (i.e second_large_ele = first_large_ele) and assign array[index] value to first_large_ele variable (i.e first_large_ele = array[index]).
    • if the array[index] is in between of first_large_ele and second_large_ele variable value then update the second_large_ele variable with array[index] (i.e econd_large_ele = array[index]).
  4. Return the second_large_ele.

C implementation to find second largest elements in a one dimensional array

//
//  main.c
//  Second largest element in the array
//
//  Created by Anshuman Singh on 22/06/19.
//

#include <stdio.h>
#include <stdlib.h>

int second_largest_element(int arr[], int length) {
    int first_large_ele = 0, second_large_ele = 0, index;
    
    if (length < 2) {
        printf("Error: Array has less than two element !!!");
    }
    
    for (index = 0; index < length; index++) {
        if (first_large_ele < arr[index]) {
            second_large_ele = first_large_ele;
            first_large_ele = arr[index];
        }
        else if (arr[index] != first_large_ele && \
                 second_large_ele < arr[index] && \
                 second_large_ele < first_large_ele) {
            second_large_ele = arr[index];
        }
    }
    return second_large_ele;
}

int main() {
    int size, index;
    
    printf("Enter the size of array: ");
    scanf("%d", &size);
    
    int arr[size];
    int array_length = (int)sizeof(arr) / sizeof(int);
    
    printf("\nEnter the array elements: ");
    for (index = 0; index < array_length; index++) {
        scanf("%d", &arr[index]);
    }
    
    printf("Second largest element: %d ", second_largest_element(arr, array_length));
    return 0;
}

Output

Enter the size of array: 5

Enter the array elements: 11 22 44 55 33
Second largest element: 44





Comments and Discussions

Ad: Are you a blogger? Join our Blogging forum.




Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates


© https://www.includehelp.com some rights reserved.