gpt4 book ai didi

c - 使用 qsort 对 long long int 数组进行排序不适用于大型 nos

转载 作者:太空狗 更新时间:2023-10-29 16:40:25 27 4
gpt4 key购买 nike

我正在使用这个比较函数对由 long long int 编号组成的数组进行排序。

int compare(const void * p1,const void * p2)
{
return (* (long long int * )a-*(long long int * )b);
}
qsort(array,no of elements,sizeof(long long int),compare)

这适用于小 nos,但是当数组包含 10^10 order 的 nos 时它会给出错误的结果?

我犯了什么错误?

最佳答案

compare 函数的结果必须是int。两个 long long 的相减很容易溢出 int 类型(在您的情况下确实如此)。

尝试明确比较两个值并返回 -1、0 或 1。

关于c - 使用 qsort 对 long long int 数组进行排序不适用于大型 nos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17638499/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com