我一直收到以下代码的错误,我不知道为什么。
int sum(struct node *head)
{
int total = 0;
struct node *temp = head;
while (temp != NULL)
{
total += temp->data;
temp = temp->next;
}
}
错误C4716'sum':必须返回值
答案 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);
希望有帮助