#include <stdio.h>
#include <stdlib.h>
int cmp(const void* a, const void* b);
int Qsort(int* arrny, int arrnySize);
int main(int argc, const char* argv[])
{
int arrnySize;
scanf_s("%d", &arrnySize);
int* arrny = (int*)malloc(sizeof(int) * arrnySize);
for (int i = 0; i < arrnySize; i++)
{
scanf_s("%d", &arrny[i]);
}
Qsort(arrny, arrnySize);
free(arrny);
return 0;
}
//函数名:排序回调函数
//函数功能:使用排序例程进行排序
//参数:指向一个比较两个元素的函数
//返回值:
// 如果compar返回值小于0(< 0),那么p1所指向元素会被排在p2所指向元素的左面;
// 如果compar返回值等于0( = 0),那么p1所指向元素与p2所指向元素的顺序不确定;
// 如果compar返回值大于0( > 0),那么p1所指向元素会被排在p2所指向元素的右面。
int cmp(const void* a, const void* b)
{
int n1 = *((int*)a);
int n2 = *((int*)b);
return n1 > n2 ? 1 : -1;
}
int Qsort(int* arrny, int arrnySize)
{
qsort(arrny, arrnySize, sizeof(int), cmp);
for (int i = 0; i < arrnySize; i++)
{
printf("%d ", arrny[i]);
}
return 0;
}