题解 | #争夺前五名#
争夺前五名
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 - 比较函数。
查看13道真题和解析