使用在C中查找链表和的递归func得到错误答案

使用在C中查找链表和的递归func得到错误答案,c,recursion,sum,singly-linked-list,C,Recursion,Sum,Singly Linked List,我有两个函数可以求一个非常大的链表的和,而递归函数不能给出真正的答案。 (我已经给出了实际的总数,所以我知道输出是否正确) 我的代码: float sum_linkedlist(numlist *head) { if(head!=NULL) return sum_linkedlist(head->next) + head->data; else return 0; } 我找不到我的代码有什么问题。有人能帮我吗?提供一个复制问题的最小完整程序。用一个简短的链表

我有两个函数可以求一个非常大的链表的和,而递归函数不能给出真正的答案。 (我已经给出了实际的总数,所以我知道输出是否正确)

我的代码:

float sum_linkedlist(numlist *head) {
  if(head!=NULL)
    return sum_linkedlist(head->next) + head->data;
  else
    return 0;
}

我找不到我的代码有什么问题。有人能帮我吗?

提供一个复制问题的最小完整程序。用一个简短的链表来探索它的正确性会容易得多。对于一个巨大的问题,递归解决方案很可能会导致堆栈溢出。预期和实际的总和是多少?该列表中有多少元素?单函数的迭代解可能比浮点解精度更高。我觉得这段代码不错。请发布一个可以运行以显示错误金额的帖子。由于您使用的是浮点数,请确保在求和时理解它们。提供一个复制问题的最小完整程序。使用一个短链表来探索其正确性要容易得多。对于一个巨大的问题,递归解决方案很可能会导致堆栈溢出。预期和实际的总和是多少?该列表中有多少元素?单函数的迭代解可能比浮点解精度更高。我觉得这段代码不错。请发布一个可以运行以显示错误金额的帖子。由于您使用的是浮点数,请确保在求和时理解它们。