How to Sort an Array in Descending Order in C - Step by Step Examples
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,
- Create an array of integers, for example,
numbers
. - Define a custom comparison function that compares two integers in descending order.
- Use the
qsort
function to sort the array of integers using the custom comparison function. - 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,
- Create an array of strings, for example,
words
. - Define a custom comparison function that compares two strings in descending order.
- Use the
qsort
function to sort the array of strings using the custom comparison function. - 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
- How to Declare an Array in C ?
- How to Initialize an Array in C ?
- How to Access Array Elements in C ?
- How to Access Array Elements using Index in C ?
- How to get First Element in Array in C ?
- How to get Last Element in Array in C ?
- How to check if an Array is Empty in C ?
- How to check if an Array is Not Empty in C ?
- How to get Sub Array in C ?
- How to Get Array Length in C ?
- How to Iterate Over an Array in C ?
- How to Iterate Over an Array in Reverse Order in C ?
- How to get the Index of Specified Element in an Array in C ?
- How to check if Specified Element is present in the Array in C ?
- How to count the Number of Occurrences of Specified Element in the Array in C ?
- How to Sort an Array in C ?
- How to Sort an Array in Ascending Order in C ?
- How to Sort an Array in Descending Order in C ?
- How to create a Two Dimensional Array in C ?
- How to Iterate over a Two Dimensional Array in C ?
- How to create a Three Dimensional Array in C ?
- How to Copy an Array in C ?
- How to Split an Array in C ?
- How to Join Arrays in C ?
- How to check if Two Arrays are Equal in C ?
- How to check if Two Arrays have Same Elements (Regardless of Order) in C ?
- How to Convert an Array of Integers to an Array of Strings in C ?
- How to Convert an Array of Strings to an Array of Integers in C ?
- How to Reverse an Array in C ?
- How to Shuffle an Array in C ?
- How to Rotate Elements in an Array in C ?
- How to Filter Elements of an Array based on a Condition in C ?
- How to Declare an Integer Array in C ?
- How to Declare a Float Array in C ?
- How to Declare a String Array in C ?
- How to Remove Duplicates in an Array in C ?
- How to Remove Specific Element from an Array in C ?
- How to Remove Element from Array based on a Condition in C ?
- How to Sort a String Array in Dictionary Order in C ?
- How to Concatenate Strings in Array in C ?