How to find the second largest elements in an array in C

2 Answers

0 votes
#include <stdio.h>
#include <stdlib.h>
 
void print(int arr[], int len) { 
    for (int i = 0; i < len; i++) 
        printf("%i ", arr[i]);
    printf("\n");
}
  
int compare_function(const void *a, const void *b) {
   return ( *(int*)a - *(int*)b );
}
 
int main() {
    int arr[] = {3, 4, 9, 6, 7, 1, 2, 5}; 
    int len = sizeof(arr)/sizeof(int); 
      
    qsort(arr, len, sizeof(int), compare_function);
      
    print(arr, len);
      
    printf("\nThe second largest numbers = %d", arr[len - 2]);
     
    return 0;
}
 
  
  
  
/*
run:
  
1 2 3 4 5 6 7 9 

The second largest numbers = 7
 
*/

 



answered Jan 18, 2021 by avibootz
edited Jan 18, 2021 by avibootz
0 votes
#include <stdio.h>
#include <limits.h>

int main() {
    int arr[] = {3, 4, 9, 6, 7, 1, 2, 5}; 
    int len = sizeof(arr)/sizeof(int);
    int max, secondlargest;
      
    max = secondlargest = INT_MIN;

    for (int i = 0; i < len; i++) {
        if(arr[i] > max) {
            secondlargest = max;
            max = arr[i];
        }
        else if(arr[i] > secondlargest && arr[i] < max) {
            secondlargest = arr[i];
        }
    }
    
    printf("%d", secondlargest);
     
    return 0;
}
 
  
  
/*
run:
  
7
 
*/

 



answered Jan 18, 2021 by avibootz

Related questions

1 answer 191 views
1 answer 188 views
3 answers 265 views
1 answer 161 views
1 answer 108 views
...