Я пишу алгоритм для получения суммы числа точек с плавающей запятой, и этот алгоритм отлично работает для целого числа, но когда я применяю к точкам с плавающей точкой, сумма, которую я получил, является отрицательным числом. однако мой массив точек с плавающей точкой имеет только положительное число точек с плавающей точкой. здесь я отправляю свой код, спасибо за его проверку.Сумма числа точек с плавающей точкой
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 отлично работает с целыми числами, извлекающими мин массива). еще раз спасибо.
Является 'make_heap()' при условии стандартной библиотеки или вашей собственной реализации? – timrau
Что делает 'make_heap'? Изменяет ли массив? Если он не изменяет массив, вы должны называть его каждой итерацией? –
'ary [j-1] = ary [j];' Кажется, вы получаете доступ за пределы эффективного диапазона. – BLUEPIXY