Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,950 questions

51,892 answers

573 users

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 160 views
1 answer 155 views
3 answers 231 views
1 answer 148 views
1 answer 98 views
...