C ++链接列表和总和问题

时间:2018-03-29 04:52:25

标签: c++

我一直收到以下代码的错误,我不知道为什么。

int sum(struct node *head)
{
    int total = 0;
    struct node *temp = head;
    while (temp != NULL)
    {
        total += temp->data;
        temp = temp->next;
    }
}
  

错误C4716'sum':必须返回值

2 个答案:

答案 0 :(得分:3)

就像错误消息所说,您需要return声明:

int sum(struct node *head)
{
    int total = 0;
    struct node *temp = head;
    while (temp != NULL)
    {
        //cout << temp->data << '\n';    //debug
        total += temp->data;
        temp = temp->next;
    }
    return total; // <-- add this!
}

答案 1 :(得分:1)

当你写int sum(struct node *head)时,这意味着你的功能应该返回一个整数值。所以你可以做的是你可以在功能结束时添加一个return语句。

像这样的东西

    int sum(struct node *head)
    {
    int total = 0;
    struct node *temp = head;
    while (temp != NULL)
    {
        total += temp->data;
        temp = temp->next;
    }
    return total;
    }

您调用此函数的语句只是将该函数分配给任何整数变量。

int t = sum(head);

希望有帮助