From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/EXAMPLES/qsort1.c | 87 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 reference/C/EXAMPLES/qsort1.c (limited to 'reference/C/EXAMPLES/qsort1.c') diff --git a/reference/C/EXAMPLES/qsort1.c b/reference/C/EXAMPLES/qsort1.c new file mode 100644 index 0000000..b078ab4 --- /dev/null +++ b/reference/C/EXAMPLES/qsort1.c @@ -0,0 +1,87 @@ +/************************************************************************ + * + * Purpose: To sort numbers held in an array. + * Author: M.J.Leslie + * Date: 30-Nov-94 + * + ************************************************************************/ + +/********** Preprocessor ***********************************************/ + +#include +#include +#include + +/********** Functions ***************************************************/ + +void display_nums(int *, int); +int comp_nums(const int *, const int *); + +/********** main ********************************************************/ + +main() +{ + int numbers[]= /* Numbers to be sorted. */ + {43,76,23,1,100,56,23,99,33,654}; + + int how_many=10; /* Number of numbers entered */ + + + puts("\nThese are the unsorted numbers\n"); + display_nums(numbers, how_many); + + /* SORT the numbers held in + * 'numbers'. */ + qsort( + numbers, /* Pointer to elements */ + how_many, /* Number of elements */ + sizeof(int), /* size of one element. */ + (void *)comp_nums /* Pointer to comparison function */ + ); + + puts("\nThese are the sorted numbers\n"); + display_nums(numbers, how_many); +} + +/************************************************************************ + * + * comp_nums: Compare two numbers. + * + ************************************************************************/ + +int comp_nums(const int *num1, const int *num2) +{ + if (*num1 < *num2) return -1; + if (*num1 == *num2) return 0; + if (*num1 > *num2) return 1; +} + +/************************************************************************ + * + * display_nums: Display the numbers + * + ************************************************************************/ + +void display_nums(int *array, int count) +{ + /* Print all the elements in + * the array. */ + while ( count-- ) + { + printf("%d ",*array); + array++; + } + puts(""); +} + +/******* The Results **************************************************** + * + * These are the unsorted numbers + * + * 43 76 23 1 100 56 23 99 33 654 + * + * These are the sorted numbers + * + * 1 23 23 33 43 56 76 99 100 654 + * + ************************************************************************/ -- cgit v1.2.3-54-g00ecf n>space:mode: