How to print an array when first element is first max and second element is first min and so on in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>
 
int compare(const void * a, const void * b) {
    return ( *(int*)a - *(int*)b );
}

void print_first_max_second_min(int arr[], int size) { 
    qsort(arr, size, sizeof(int), compare);
 
    int i = 0, j = size - 1; 
    while (i < j) { 
        printf("%d ", arr[j--]);
        printf("%d ", arr[i++]);
    } 
   
    if (size % 2 != 0) 
        printf("%d ", arr[i]); 
} 
 
int main()
{
  int arr[] = {13, 5, 2, 10, 4, 9, 7, 8, 559};
  int size = sizeof(arr)/sizeof(arr[0]);
 
  print_first_max_second_min(arr, size);
   
  return 0;
}
 
 
 
 
/*
run:
 
559 2 13 4 10 5 9 7 8 
     
*/

 



answered Dec 8, 2021 by avibootz
...