How to Sort an Array in Descending Order in C


How to Sort an Array in Descending Order in C ?

Answer

To sort an array in descending order in C, you can use the `qsort` function from the `stdlib.h` library with a custom comparison function.



✐ Examples

1 Sort Array of Integers in Descending Order

In this example,

  1. Create an array of integers, for example, numbers.
  2. Define a custom comparison function that compares two integers in descending order.
  3. Use the qsort function to sort the array of integers using the custom comparison function.
  4. Print the sorted array to see the result.

C Program

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

int compare_desc(const void *a, const void *b) {
    return (*(int*)b - *(int*)a);
}

int main() {
    int numbers[] = {5, 2, 8, 1, 9};
    int size = sizeof(numbers) / sizeof(numbers[0]);
    qsort(numbers, size, sizeof(int), compare_desc);
    for (int i = 0; i < size; i++) {
        printf("%d ", numbers[i]);
    }
    return 0;
}

Output

9 8 5 2 1 

2 Sort Array of Strings in Descending Order

In this example,

  1. Create an array of strings, for example, words.
  2. Define a custom comparison function that compares two strings in descending order.
  3. Use the qsort function to sort the array of strings using the custom comparison function.
  4. Print the sorted array to see the result.

C Program

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

typedef const char* string;

int compare_desc(const void* a, const void* b) {
    return strcmp(*(string*)b, *(string*)a);
}

int main() {
    string words[] = {"apple", "banana", "cherry", "date"};
    int size = sizeof(words) / sizeof(words[0]);
    qsort(words, size, sizeof(string), compare_desc);
    for (int i = 0; i < size; i++) {
        printf("%s ", words[i]);
    }
    return 0;
}

Output

date cherry banana apple 

Summary

In this tutorial, we learned How to Sort an Array in Descending Order in C language with well detailed examples.




More C Arrays Tutorials

  1. How to Declare an Array in C ?
  2. How to Initialize an Array in C ?
  3. How to Access Array Elements in C ?
  4. How to Access Array Elements using Index in C ?
  5. How to get First Element in Array in C ?
  6. How to get Last Element in Array in C ?
  7. How to check if an Array is Empty in C ?
  8. How to check if an Array is Not Empty in C ?
  9. How to get Sub Array in C ?
  10. How to Get Array Length in C ?
  11. How to Iterate Over an Array in C ?
  12. How to Iterate Over an Array in Reverse Order in C ?
  13. How to get the Index of Specified Element in an Array in C ?
  14. How to check if Specified Element is present in the Array in C ?
  15. How to count the Number of Occurrences of Specified Element in the Array in C ?
  16. How to Sort an Array in C ?
  17. How to Sort an Array in Ascending Order in C ?
  18. How to Sort an Array in Descending Order in C ?
  19. How to create a Two Dimensional Array in C ?
  20. How to Iterate over a Two Dimensional Array in C ?
  21. How to create a Three Dimensional Array in C ?
  22. How to Copy an Array in C ?
  23. How to Split an Array in C ?
  24. How to Join Arrays in C ?
  25. How to check if Two Arrays are Equal in C ?
  26. How to check if Two Arrays have Same Elements (Regardless of Order) in C ?
  27. How to Convert an Array of Integers to an Array of Strings in C ?
  28. How to Convert an Array of Strings to an Array of Integers in C ?
  29. How to Reverse an Array in C ?
  30. How to Shuffle an Array in C ?
  31. How to Rotate Elements in an Array in C ?
  32. How to Filter Elements of an Array based on a Condition in C ?
  33. How to Declare an Integer Array in C ?
  34. How to Declare a Float Array in C ?
  35. How to Declare a String Array in C ?
  36. How to Remove Duplicates in an Array in C ?
  37. How to Remove Specific Element from an Array in C ?
  38. How to Remove Element from Array based on a Condition in C ?
  39. How to Sort a String Array in Dictionary Order in C ?
  40. How to Concatenate Strings in Array in C ?