gpt4 book ai didi

c - 多个 float 之和

转载 作者:行者123 更新时间:2023-11-30 17:28:59 27 4
gpt4 key购买 nike

我编写了一个算法来获取 float 的总和,该算法对于整数来说非常有效,但是当我应用于 float 时,我得到的总和是负数。但是我的 float 数组只有正 float 。在这里我发布我的代码,感谢您检查它。

static unsigned int do_heap_sum(double ary[], unsigned int n,
double *result)
{
unsigned int j;
int counter=0;
double sum=0;
double min;
while(n>counter){
make_heap(ary,n);
min=ary[0];
sum=sum+min;

for(j=1;j<n;j++){
ary[j-1]=ary[j];
}
counter=counter+1;
}

*result=sum;
//exit(EXIT_FAILURE);
return 0;
}

在此代码中,我使用 make_heap 来查找最小值。你认为这有问题吗? (这个 make_heap 与提取数组最小值的整数完美配合)。再次感谢。

最佳答案

  1. 在您的代码中,您想要计算存储在 double[] 中的堆的总和。 ,所以make_heap是多余的,一个简单的循环就足够了。

  2. 确保 double足够大,可以节省总和。

  3. 对于 ary[j-1] = ary[j]for(j=1;j<n;j++) ,为什么不直接交换 ary[0]ary[n - counter - 1]然后在下一个循环中调整堆,这样便宜得多。

关于c - 多个 float 之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25839553/

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