题目要求:
本题要求将给定的n个整数从小到大排序后输出。
代码实现:
#include <stdio.h>
#include <stdlib.h> //qsort需要调用函数库
int cmp(const void *a,const void *b); //定义一个比较函数
int main()
{
int n,i;
scanf("%d",&n);
int arr[n];
for(i = 0;i < n;i++)
{
scanf("%d",&arr[i]);
}
qsort(arr, 5, sizeof(int), cmp); //qsort(元素名,元素个数, 元素类型空间,(&)比较函数
for(i = 0;i < n;i++)
{
printf("%d\t",arr[i]);
}
return 0;
}
int cmp(const void *a,const void *b)
{
//需要转成int型
//(具体转成什么型是看主函数里面定义的要排序的数是什么型)
//(然后把这里的int 全部改为所指定型)
//注意! 声明比较函数的int不要变!!
int n1 = *(int*)a;
int n2 = *(int*)b;
return n1 - n2; //这里为升序(降序则是n2 - n1)
}
运行结果: