题解 | #争夺前五名#
争夺前五名
https://www.nowcoder.com/practice/cd052308a1c44a88ad00255f312c3e14
#include <stdio.h> #include <stdlib.h> int compare(const void *a,const void *b) { int arg1 = *(const int*)a; int arg2 = *(const int*)b; return (arg1<arg2)-(arg1>arg2); } int main() { int n; scanf("%d",&n); int arr[n]; for(int i=0;i<n;i++) { scanf("%d",&arr[i]); } qsort(arr, n, 4, compare); for(int i=0;i<5;i++) { printf("%d ",arr[i]); } }
用qsort函数来进行排序即可,
C语言qsort排序接口:qsort(void *ptr, size_t count, size_t size, int (*comp)(const void*a, const void *b) );
ptr - 指向待排序的数组的指针
count - 数组的元素数目
size - 数组每个元素的字节大小
comp - 比较函数。